簡體   English   中英

搜索/替換中的Notepad ++ Regex Backreference語法 - \ 1或$ 1

[英]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兼容正則表達式)搜索/替換支持:

Notepad ++ 6.0中的新功能和增強功能:

  • 支持PCRE(Perl兼容正則表達式)。

這意味着如果您使用的是Notepad ++ v6.0或任何較新版本(例如v6.1.5),則可以使用PCRE語法,並使用$1而不是\\1進行反向引用,但它與早期版本不兼容Notepad ++(版本6.0之前)。 除此之外,他們是相似的。

有關反向引用語法與新語法支持背后原因之間差異的更多信息,請參閱替換字符串中的反向引用語法(為什么是美元符號?)

可以在此處找到有關如何在Notepad ++中使用正則表達式的有用教程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM