簡體   English   中英

如何在Notepad ++的“正則表達式查找器”對話框中替換周圍的文本?

[英]How to Replace Text Surrounding Text in Notepad++'s Regular Expression Finder Dialog?

此問題與其他正則表達式notepad ++問題相反。 除了替換文本之間的文本,我還需要替換周圍的文本,如下所示:

$ _REQUEST [' 操作 ']

getReq(' action ')

所以:

我希望將$_REQUEST(替換為getReq( ,同時將]替換為)

如何在Notepad ++中實現呢? 有超過1000個匹配,我想替換所有匹配,不僅僅是具有動作索引的匹配,還有更多!

您仍然想要匹配,只想與捕獲匹配(記事本支持此操作,請確保已在搜索和替換中選中了正則表達式。()是捕獲組,第一個順序(是捕獲組號。(?: )可用於使群組不被捕獲)

匹配\\$_REQUEST\\['([^']*)'\\]

將捕獲替換為getReq\\('$1'\\)

編輯:在記事本中,由於某種原因,您必須在替換部分中轉義()

您需要在正則表達式中使用捕獲組 在大多數正則表達式引擎中,捕獲組用括號表示,可能在前面用反斜杠轉義:

foo(capturing_group)bar

foo\(capturing group\)bar

我認為Notepad ++使用PCRE,因此它應該是空白的(上面的第一個示例)。

您擁有的是更大的模式:

$_REQUEST['some variable text goes here']

您想用替換

getReq('some variable text goes here')

捕獲組將“捕獲”(或“保存”)變量文本,對該組的向后引用將在替換中“插入”文本:

$_REQUEST['([^']*)']   

getReq('\1')

搜索將查找外部文本$_REQUEST[''] ,再加上一個捕獲組( ... )其中包含[^']*任意數量的非單引號字符。

替換將是外部替換文本getReq('') ,再加上對原始匹配中第一個(也是唯一的!)捕獲組的反向引用。 \\1被替換為第一組括號內的所有內容。

僅供參考:分組通常通過計算左括號來編號。 因此,這樣的嵌套組: ( ( ) ) ( ( ) )將被編號為(1 (2 ) ) (3 (4 ) )

暫無
暫無

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

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