gpt4 book ai didi

regex - Notepad++ 搜索/替换中的正则表达式反向引用语法 -\1 或 $1

转载 作者:行者123 更新时间:2023-12-03 08:03:21 25 4
gpt4 key购买 nike

我曾尝试使用 Notepad++ Search/Replace with a Regular Expression 用这些单词的较短版本替换特定单词。

我使用以下正则表达式匹配以 er 结尾的每个单词(但不是 er 作为一个词) - 并用相同的词替换匹配的词减去结尾 r ,使用反向引用:
Find what: ([a-zA-z]+e)r
Replace with: $1

但它不会替换匹配的单词,即使它找到了它们。

但是,如果我将反向引用语法更改为:
Replace with: \1

一切正常。

为什么$1反向引用工作?

两种形式的反向引用有什么区别 - \1$1 ?

最佳答案

Notepad++ 的早期版本(v5.9.8 及更早版本)仅支持标准 POSIX常用表达。然而,满PCRE (Perl 兼容正则表达式)6.0 版中添加了搜索/替换支持:

New features and enhancement in Notepad++ 6.0:

  • PCRE (Perl Compatible Regular Expressions) is supported.


这意味着如果您使用 Notepad++ v6.0 或任何更新版本(例如 v6.1.5),您可以使用 PCRE 语法,并使用 $1而不是 \1用于反向引用,但它与早期版本的 Notepad++(6.0 版之前)不兼容。除此之外,它们是相似的。

有关反向引用语法之间的差异以及新语法支持背后的原因的更多信息,请参阅 Backreferences syntax in replacement strings (why dollar sign?) .

可以找到有关如何在 Notepad++ 中使用正则表达式的有用教程 here .

关于regex - Notepad++ 搜索/替换中的正则表达式反向引用语法 -\1 或 $1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11970405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com