Regex-Dialekt: Java
Die Aufgabe: Ersetzen Sie in einer Zeichenkette alle Vorkommen einer Teilzeichenkette, außer wenn diese Vorkommen in Anführungszeichen stehen.
Beispiel 1:
string: "test substr 'test substr' substr"
substring: "substr"
replacement: "YYYY"
output: "test YYYY 'test substr' YYYY"
Beispiel2:
string: "test sstr 'test sstr' sstr"
substring: "substr"
replacement: "YYYY"
output: "test sstr 'test sstr' sstr"
Beispiel3:
string: "test 'test substr'"
substring: "substr"
replacement: "YYYY"
output: "test 'test substr'"
Dies ist mein bisher bester Versuch:
Regex: ((?:[^']*'[^']+')*?[^']*?)substring
Replace: $1replacement
Das Problem dabei ist, dass nach der letzten Zeichenkette innerhalb der Anführungszeichen eine Teilzeichenkette außerhalb der Anführungszeichen erforderlich ist, sonst funktioniert es nicht, so dass Beispiel3 fehlschlägt (Ausgabe: "test 'test YYYY'").
Vielen Dank für Ihre Hilfe.