regEx一次替换多个懒惰的匹配项

时间:2018-12-05 11:11:16

标签: regex notepad++

我想将abc xyz xyz替换为abc uvw uvw。使用此regEx搜索(abc)(.*?)(xyz)并替换为\1\2uvw,我得到abc uvw xyz并需要重复该过程。我正在Notepad ++中进行测试。但是,即使是“全部替换”按钮也不能替换所有匹配。有没有办法一次替换所有匹配?

1 个答案:

答案 0 :(得分:1)

您可以使用

查找内容(?:\G(?!^)|abc)\s*\Kxyz
替换为uvw

详细信息

  • (?:\G(?!^)|abc)-上一场比赛结束或abc
  • \s*-0或更多(将*替换为+以匹配1或更多)空格
  • \K-匹配重置运算符,该运算符将舍弃到目前为止已匹配的所有文本
  • xyz-xyz子字符串。

注意:如果需要在行首出现xyz的行中匹配这些xyz,请用\G(?!^)或{替换\G(?!^(?<![\S\s])) {1}}。

请参见下面的屏幕截图:

enter image description here