Damian Brunold
Search-Replace in Java
2011-09-06 08:49
Java besitzt eine ReplaceAll Methode auf der String-Klasse. Diese nimmt eine Regexp als erstes Argument und einen Replacement-String als zweiten. Im Replacement-String haben Backslash und Dollar besondere Bedeutungen. Um diese zu verhindern, kann man die statische Methode Matcher.quoteReplacement verwenden.
Ein Beispiel: ich möchte alle Quotes mit einem Backslash escapen, d.h. a"b zu a\"b verändern.
Das folgende ist falsch:
token.replaceAll("\"", "\\\"")
hingegen funktioniert
token.replaceAll("\"", Matcher.quoteReplacement("\\\""))
korrekt.