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.


Anmelden zum Antworten