![](/img/trans.png)
[英]Regex replacing word within string beginning with specific word (Notepad++)
[英]Find specific word inside a string in xml tag using regex in notepad++?
<name>
我的名字是湯姆,但人們稱我為 XYZ,但我的實際名字是湯米! </name
>
示例: (?<=<name>)[a-zA-Z]*(Tom)[a-zA-Z]*(?=<\\/name>)
,
找出什么: (?<=<name>)(.*?)(Tom)(?=\\b.*</name>)
替換為: $1Harry
細節 :
巴利斯名稱: (?<=<name>)
name 和 Tom (.*?)
之間的任何內容
湯姆(Tom)
檢查單詞 Tom (?=\\b
湯姆和結束名字之間的任何東西 balise .*
閉幕式</name>)
重新注入 balise 名稱和 tom 之間的內容$1
哈里更換湯姆· Harry
由於name
標簽內部不能有任何其他標簽,因此可以解決問題的正則表達式是
(?:\G(?!^)|<name>)[^<]*?\K\bTom\b
請參閱正則表達式演示。 替換為Harry
。
細節
(?:\\G(?!^)|<name>)
- 前一個成功匹配的結尾 ( \\G(?!^)
) 或 ( |
) <name>
子字符串[^<]*?
- 除<
之外的任何 0+ 個字符,盡可能少\\K
- 匹配重置運算符\\bTom\\b
- 整個單詞Tom
(如果需要匹配Tommy
中的Tom
,請刪除\\b
單詞邊界)。 注意:如果您還想匹配Tommy
,請將\\bTom\\b
替換為\\bTom(?:my)?\\b
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.