【发布时间】:2012-08-03 21:17:47
【问题描述】:
我的问题很简单:
如何将 "\" 替换为 "" ???
我试过了:
str.replaceAll("\\", "");
但我遇到了异常
08-04 01:14:50.146: I/LOG(7091): java.util.regex.PatternSyntaxException: Syntax error U_REGEX_BAD_ESCAPE_SEQUENCE near index 1:
【问题讨论】:
我的问题很简单:
如何将 "\" 替换为 "" ???
我试过了:
str.replaceAll("\\", "");
但我遇到了异常
08-04 01:14:50.146: I/LOG(7091): java.util.regex.PatternSyntaxException: Syntax error U_REGEX_BAD_ESCAPE_SEQUENCE near index 1:
【问题讨论】:
如果您不使用replaceAll(采用正则表达式)会更简单 - 只需使用replace(采用纯字符串)即可。除非您真的需要正则表达式,否则不要使用正则表达式形式。它只会让事情变得更复杂。
不要忘记只是 调用 replace 或 replaceAll 是没有意义的,因为字符串是不可变的 - 您需要使用返回结果:
String replaced = str.replace("\\", "");
【讨论】:
\\是字符串转义后的\,也是正则表达式try中的转义字符
String newStr = str.replaceAll("\\\\", "");
(不要忘记分配结果)
此外,如果您在需要正则表达式的地方使用某个字符串作为输入,则 IMO 使用 Pattern#quote 会更安全:
String newStr = str.replaceAll(Pattern.quote("\\"), "");
【讨论】:
你应该试试这个:
str.replaceAll("\\\\", "");
\ 必须在正则表达式中转义 => 你应该写 \\,每个 \ 必须在 java 中转义 => 这就是为什么我们有 4 个 \
【讨论】: