记事本+ +中搜索正则表达式的语法后向引用/替换 - \\ 1或$ 1(Notepad++ Reg

2019-06-27 01:33发布

我曾尝试使用记事本++查找/替换使用正则表达式用较短版本的那些单词来替换特定的单词。


我用下面的正则表达式所有以结尾词匹配er (但不是er为一个字) - ,代之以相同的话减去结束匹配的单词r使用反向引用:

Find what: ([a-zA-z]+e)r

Replace with: $1

但它不会取代匹配的话,即使找到他们。

但是,如果我改变逆向引用的语法如下:

Replace with: \1

一切工作正常。


为什么不$1逆向引用工作?

两者有什么形式backrefernce之间的差异- \1$1

Answer 1:

记事本+ +的早期版本(v5.9.8及以前)仅支持标准的POSIX正则表达式。 然而,全PCRE (Perl兼容的正则表达式)搜索/在6.0版本中添加替换支持:

新功能和增强在记事本++ 6.0:

  • PCRE(Perl兼容的正则表达式)的支持。

这意味着,如果你用记事本++ V6.0或更新的版本(如V6.1.5),你可以使用PCRE语法,并使用$1 ,而不是\1的逆向引用,但它不会与早期版本兼容记事本的++(版本6.0之前)。 除此之外,他们是相似的。

有关反向引用语法和新语法的支持背后的原因之间的差异的详细信息,请参阅在替换字符串后向引用语法(为什么美元符号?) 。

如何在记事本+ +使用正则表达式有用的教程可以找到这里



文章来源: Notepad++ Regex Backreference syntax in Search/Replace - \\1 or $1