Damian Brunold

Search-Replace in Java

2011-09-06 08:49 Java, Programmieren

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.