3
正則表達式方言:Java
問題:給定一個字符串,將其中所有出現的子字符串替換掉,除非這些出現在引號內。替換字符串中的子字符串,除非字符串在引號內
例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'「)。
非常感謝您的幫助。
非常感謝Bart!不知何故,我陷入了複製,從未想過展望未來。 –
@Marius,不客氣。 –