[英]Notepad++ replace text with RegEx search result
我想用正則表達式的結果替換另一個文件中的標准字符串。 標准文本如下所示:
<xsl:variable name="ServiceCode" select="###"/>
我想將###替換為服務代碼,稍后可以從該URL在同一文件中找到:
<a href="/Services/xyz" target="_self">
正則表達式(?<=\\/Services\\/)(.*)(?=\\" )
返回所需的服務代碼” xyz“。
因此,我打開了Notepad ++,在“查找內容”中添加了“ ###”,在“替換為”部分中添加了此RegEx,並期望將###
文本替換為xyz
。 但是我得到了這個結果:
<xsl:variable name="ServiceCode" select="?<=/Services/.*?=" "/>
我是RegEx的新手,在替換部分中是否需要使用與查找字符串不同的語法? 有人可以提示我如何達到所需的結果嗎? 目的是使大量具有相似結構的文件標准化,因為現在所有服務代碼都在文件中的多個位置進行了硬編碼。 謝謝。
搜索:( (?s)###(?=.*/Services/([^"]+)")
並替換為: $1
(?s)
使點也與換行符匹配(np ++中還有一個復選框) [^"]
匹配的字符不是 "
替換$1
對應於捕獲第一個帶括號的子模式。
我不是RegEx的專家,但我認為我可以提供幫助。 看來您可能會走錯路了。 您正在使用的正則表達式搜索通常會像這樣工作:
RegEx中的括號()
允許您選擇搜索的一部分,並在替換部分中使用。
您將(?<=\\/Services\\/)(.*)(?=\\" )
放入Notepad ++中的“查找內容”部分。
然后,在“替換為”部分中,可以使用\\1
或\\2
或\\3
將搜索內容替換為(?<=\\/Services\\/)
或(.*)
或(?=\\" )
分別搜索。
根據文件的結構,您需要使用RegEx搜索來選擇兩行代碼(以及所需的特定部分),然后使用\\1\\2\\3
等的組合來完全替換所有內容是,除了###,您可以將其替換為與xyz
關聯的\\number
。
有關更多信息,請參見http://docs.notepad-plus-plus.org/index.php/Regular_Expressions 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.