2013-10-24 4 views
9

Как раз для предисловия, я прочитал многие из вопросов, касающихся этого, но я не мог найти ответ (по крайней мере, на моем копании). Не стесняйтесь указать на это, если я пропустил это!Notepad ++ Regex replace - 1 не работает?

Я знаю, как использовать регулярное выражение, и на самом деле я нахожу текст, который я ищу. Однако, когда я пытаюсь сделать, как другие вопросы, предложенные "\1MyAppendedTextHere" и заменить, он просто стирает совпадающий шаблон и добавляет то, что следует за \1. (Предыдущие вопросы, которые я искал, заявили, что "\1" был тем, как это сделал блокнот ++). Это изменилось? Я делаю что-то неправильно?

Вот как это выглядит:

find: name[A-Z_0-9]+ 
replace: \1_SUFFIX 

Любая помощь приветствуется!

+0

FWIW, я заметил в v6.6.8, захваты представлены $ 0, $ 1 и т. Д. Обозначение $ также упоминается в других комментариях ниже. С другой стороны, обозначение обратной косой черты, упомянутое ниже, не работает для меня, кроме как исключить скобки для вывода. – bvj

ответ

13

\1 ссылается на содержимое первого capturing group, что означает первый набор круглых скобок в регулярном выражении поиска. В вашем регулярном выражении нет ни одного, поэтому \1 не имеет никакого отношения.

Используйте \0, если вы хотите ссылаться на все совпадения или добавить круглые скобки вокруг соответствующей части регулярного выражения.

find: name[A-Z_0-9]+ 
replace: \0_SUFFIX 

изменится nameABC в nameABC_SUFFIX.

Использование захватив группы, вы можете сделать что-то вроде

find: name([A-Z_0-9]+)  
replace: \1_SUFFIX 

который заменит nameABC с ABC_SUFFIX.

+1

Я знал, что это было что-то глупое, я уходил! Отметьте это как ответ, как только достаточно много времени для этого! – Mike

+0

Кроме того, поскольку Notepad ++ использует механизм регулярных выражений PCRE, вам следует избегать использования '\ 1' и привыкнуть к' $ 1' (см. Http://stackoverflow.com/q/1068840/2140859) – psxls

+0

@psxls: Вы в этом уверены? Perl не является PCRE («Perl-совместимое регулярное выражение», другой движок). –