# replaceAll Problem mit Backslash



## ponG86 (7. Mai 2006)

Ich poste hier eigentlich wegen was ganz banalem, aber ich habe keine Ahnung woran es noch liegen könnte... habe folgende Zeile 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:


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

funktioniert alles nicht! was mache ich falsch???


----------



## byte (7. Mai 2006)

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:


```
str = str.replace("\\", "/");
```

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


```
str = str.replaceAll("\\\\", "/");
```


----------

