[英]Notepad++ Regex Backreference syntax in Search/Replace - \1 or $1
我試圖使用Notepad ++ Search / Replace with 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正則表達式。 但是,在6.0版中添加了完整的PCRE (Perl兼容正則表達式)搜索/替換支持:
- 支持PCRE(Perl兼容正則表達式)。
這意味着如果您使用的是Notepad ++ v6.0或任何較新版本(例如v6.1.5),則可以使用PCRE語法,並使用$1
而不是\\1
進行反向引用,但它與早期版本不兼容Notepad ++(版本6.0之前)。 除此之外,他們是相似的。
有關反向引用語法與新語法支持背后原因之間差異的更多信息,請參閱替換字符串中的反向引用語法(為什么是美元符號?) 。
可以在此處找到有關如何在Notepad ++中使用正則表達式的有用教程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.