replaceAll Probleme
-
Moin
ich versuch grad in einem Text das Pattern CRLF durch '\r\n' zu ersetzen. So das dieser text nicht als steuerzeichen, sondern in Textueller schreibweise darin auftaucht.
erster versuch:
next = next.replaceAll( "CRLF", "\\n\\r" );
CRLF ersetzt er mir doch tatsächlich durch nr meine slashes hat er irgendwohin optimiert.
zweiter versuch
next = next.replaceAll( "CRLF", "\" );
Versuch mal CRLF durch nen backslash zu ersetzen. Resultat Index out of boundexeption.
dritter versuch
next = next.replaceAll( "CRLF", "\n\r" );
Das tut wieder nur ersetzt er mir CRLF durch die beiden steuerzeichen. Was ich ja nicht will.
Letzter versuch
next = next.replaceAll( "CRLF", "\\\n\\\r" );
Jetzt tuts. auch so wie ich will
nur kann mir einer erklären wieso das so ist?
gruss
-
Hallo,
1. Java liest den String "\\\n\\\r" -> Das erste \ maskiert den zweiten \, der dritte den Vierten ==> "\\n\\r"
2. Die Regex-Maschine parst den String "\\n\\r" => "\n\r"
MfG
-
Wenn man sich mit der "doppelten" Maskierung (durch Regex) nicht rumschlagen will, dann einfach String#replace() verwenden. Die Methode akzeptiert Strings.