正規表現: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!どういうわけか私はコピーにこだわり、先を見越すことを考えなかった。 –
@マリアス、どうぞよろしくお願いいたします。 –