我尝试使用以下正则表达式,但它没有用。
myString.replaceAll(“\”,“/”);
例外:
java.util.regex.PatternSyntaxException: 索引1附近出现意外的内部错误 \ ^在 java.util.regex.Pattern.error(未知 来源)at java.util.regex.Pattern.compile(未知 来源)at java.util.regex.Pattern中。(未知 来源)at java.util.regex.Pattern.compile(未知 来源)at java.lang.String.replaceAll(未知 源)
答案 0 :(得分:7)
您的代码甚至不应该编译。
"\"
转义"
,以便字符串继续。写String h = "\"hello\"";
使字符串h
包含"hello"
。
如果我们更改然后将其更改为"\\"
(逃避反斜杠),我们会遇到另一个问题。然后,正则表达式尝试转义 next 字符。例如,写"\\d+"
是一个有效的正则表达式(匹配数字)。
在你的情况下,你根本不需要正则表达式。只需使用字符串的replace(char, char)
方法,它就会替换所有字符。
myString.replace('\\', '/');
顺便说一下,如果要替换路径,则应该查看File.separator
以获取系统路径分隔符。
答案 1 :(得分:3)
有时你需要4个斜杠,因为反斜杠也是正则表达式的转义字符。试试
myString.replaceAll("\\\\", "/");