Notepad ++ Regex替换 - \ 1不起作用?

时间:2013-10-24 20:01:24

标签: regex replace notepad++

仅作为序言,我已经阅读了很多关于此的问题,但我找不到答案(至少在我的挖掘中)。如果我错过了,请随意指出它!

我知道如何使用正则表达式,事实上我找到了我正在搜索的文本。但是,当我尝试执行其他问题建议"\1MyAppendedTextHere"并替换时,它只会删除匹配的模式并添加\1之后的内容。 (之前提出的问题表明,"\1"是记事本++如何做到的。这改变了吗?我做错了吗?

这是它的样子:

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

感谢任何帮助!

1 个答案:

答案 0 :(得分:17)

\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