正则表达式方言:Java
问题:给定一个字符串,在不影响引号内的情况下,替换其中所有子字符串的出现。
例1:
这是我迄今为止的最佳尝试:
问题:给定一个字符串,在不影响引号内的情况下,替换其中所有子字符串的出现。
例1:
string: "test substr 'test substr' substr"
substring: "substr"
replacement: "YYYY"
output: "test YYYY 'test substr' YYYY"
例子2:
string: "test sstr 'test sstr' sstr"
substring: "substr"
replacement: "YYYY"
output: "test sstr 'test sstr' sstr"
示例3:
string: "test 'test substr'"
substring: "substr"
replacement: "YYYY"
output: "test 'test substr'"
这是我迄今为止的最佳尝试:
Regex: ((?:[^']*'[^']+')*?[^']*?)substring
Replace: $1replacement
问题在于它需要在引号内最后一个字符串之后加上一个引号外的子字符串,否则它就无法工作,因此Example3将失败(输出:“test 'test YYYY'”)。
非常感谢您的帮助。