7

我的问题很简单:

如何将“\”替换为“”???

我试过这个:

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:
4

3 回答 3

25

如果你为此使用replaceAll(它需要一个正则表达式),它会更简单 - 只需使用replace(它需要一个纯字符串)。除非你真的需要正则表达式,否则不要使用正则表达式形式。它只会让事情变得更复杂。

不要忘记调用 replaceorreplaceAll是没有意义的,因为字符串是不可变的——你需要使用返回结果:

String replaced = str.replace("\\", "");
于 2012-08-03T21:21:16.963 回答
11

\\\在字符串转义之后,这也是正则表达式中的转义字符尝试

String newStr = str.replaceAll("\\\\", "");

(不要忘记分配结果)

此外,如果您使用一些字符串作为需要正则表达式的输入,则使用 IMO 会更安全Pattern#quote

String newStr = str.replaceAll(Pattern.quote("\\"), "");
于 2012-08-03T21:20:20.757 回答
10

你应该试试这个:

str.replaceAll("\\\\", "");

\必须在正则表达式中转义=>你应该写,\\每个\都必须在java中转义=>这就是为什么我们有4\

于 2012-08-03T21:19:00.393 回答