我正在使用notepad ++并尝试使用特定标记内的另一个单词来查找/替换XML文件中特定单词的出现。
例如: XML文件包含
<alerts>
<ccEmails>abc@example.com,xyz@example.com</ccEmails>
<toEmails>mnp@example.com</toEmails>
</alerts>
我需要将示例替换为<ccEmails>
内的 myexample ,但<toEmails>
我在https://regex101.com/r/Q8UB6a/1尝试了ccEmails.*(example).*ccEmails
,它只返回最后一次。此外,我无法用另一个替换字符串。
当我在记事本++中尝试这个时,我得到了<ccEmails>
你能帮我找到/替换特定标签中包含的子串吗?如果需要更多详细信息,请告诉我。
答案 0 :(得分:1)
如果您打算使用“查找和替换”对话框,则需要使用基于\G
的正则表达式
(?:<ccEmails>|\G(?!^))[^<]*?\K\bexample\b
并替换为myexample
。查看online regex demo.
<强>详情:
(?:<ccEmails>|\G(?!^))
- <ccEmails>
或上次成功比赛结束[^<]*?
- 尽可能少的<
以外的任何0 +字符\K
- 省略到目前为止匹配的文字
- \bexample\b
- 整个字example
。答案 1 :(得分:0)
将(<ccEmails>[^<>]+@)example\.
替换为\1myexample.
并进行全部替换。 replace-all需要完成两次或更多次,因为每次传递只会在所需的字符串中更改一个example
。