如何更换' string1'用' string2'如果行包含' string3'在Notepad ++中?

时间:2017-05-18 06:48:27

标签: regex replace notepad++

我在文件中有以下内容:

This is line one
This is line two with string1 and string3
This is line three with string3

我需要更换' string1'用' string2'如果该行包含' string3',那么结果将为:

This is line one
This is line two with string2 and string3
This is line three with string3

2 个答案:

答案 0 :(得分:1)

要替换该行上包含string1 的任何行上的{em>所有出现 ,您需要使用{{1基于正则表达式:

string3

替换为\G。请参阅regex demo online

<强>详情:

  • (?:\G(?!^)|^(?=.*string3)).*?\Kstring1 - 上一场比赛的结尾或其中包含string2的一行的开头
  • (?:\G(?!^)|^(?=.*string3)) - 除了换行符之外的任何0 +字符
  • string3 - 匹配重置运算符,丢弃当前迭代中到目前为止匹配的所有文本
  • .*? - 要替换​​的\K子字符串。

以下文字

string1

变成

enter image description here

答案 1 :(得分:0)

代表@Gawil

在Notepad ++上转到搜索 - &gt;替换

在&#39;找到&#39;:^(?=.*?string3)(.*?)string1(.*?)$

在&#39;替换为&#39;:\1string2\2

执行&#39;替换&#39;或者&#39;全部替换&#39;有必要的。 enter image description here