我在文件中有以下内容:
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
答案 0 :(得分:1)
要替换该行上包含string1
的任何行上的{em>所有出现 ,您需要使用{{1基于正则表达式:
string3
替换为\G
。请参阅regex demo online。
<强>详情:
(?:\G(?!^)|^(?=.*string3)).*?\Kstring1
- 上一场比赛的结尾或其中包含string2
的一行的开头(?:\G(?!^)|^(?=.*string3))
- 除了换行符之外的任何0 +字符string3
- 匹配重置运算符,丢弃当前迭代中到目前为止匹配的所有文本.*?
- 要替换的\K
子字符串。以下文字
string1
变成
答案 1 :(得分:0)