I tried with following regex, but it didn't work.
myString.replaceAll("\", "/");
Exception:
java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 \ ^ at java.util.regex.Pattern.error(Unknown Source) at java.util.regex.Pattern.compile(Unknown Source) at java.util.regex.Pattern.(Unknown Source) at java.util.regex.Pattern.compile(Unknown Source) at java.lang.开发者_StackOverflow社区String.replaceAll(Unknown Source)
Your code should not even compile.
"\"
escapes the "
so that the string continues. Writing String h = "\"hello\"";
makes the string h
contain "hello"
.
If we change then change it to it to "\\"
(escaping the backslash) we run into another problem. The regular expression then tries to escape the next character. For example writing "\\d+"
is a valid regular expression (matching digits).
In you case however you do not need regular expressions at all. Just use the replace(char, char)
method of the string, it replaces all characters.
myString.replace('\\', '/');
By the way, if you are replacing paths, you should look at File.separator
to get the systems path separator character.
Sometimes you need 4 slashes, because backslash is an escape character for regex as well. Try
myString.replaceAll("\\\\", "/");
精彩评论