replaceAll Problem mit Backslash

  • Themenstarter Themenstarter ponG86
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
P

ponG86

Gast
Ich poste hier eigentlich wegen was ganz banalem, aber ich habe keine Ahnung woran es noch liegen könnte... habe folgende Zeile Code:

Code:
str = str.replaceAll("\\", "/");

Kommt das Programm an diese Stelle, bekomme ich:

java.util.regex.PatternSyntaxException: Unclosed character class near index 2
[\]

So, RegEx geguggt, Zeile geändert:

Code:
str = str.replaceAll("[\\]", "/");
str = str.replaceAll("[\]", "/");
str = str.replaceAll("\", "/");

funktioniert alles nicht! was mache ich falsch???
 
Das Thema wurde schon soo oft behandelt, es wäre echt nett, wenn Du da die Forensuche benutzen würdest. Kurz gesagt: Backslash hat einmal in Strings ne besondere Bedeutung (muss daher maskiert werden) und hat andererseits in Regex auch nochmal ne besondere Bedeutung und muss daher in Regexen "doppelt maskiert" werden.

In Deinem Fall tuts aber einfach folgendes:

Code:
str = str.replace("\\", "/");

Die replace() akzeptiert Strings und kein Regex, daher reicht die einmalige Maskierung. Mit replaceAll() müsste es so aussehen:

Code:
str = str.replaceAll("\\\\", "/");
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben