【问题标题】:replace "\" with "" in java在java中将“\”替换为“”
【发布时间】: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:

【问题讨论】:

标签: java regex string


【解决方案1】:

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

不要忘记只是 调用 replacereplaceAll 是没有意义的,因为字符串是不可变的 - 您需要使用返回结果:

String replaced = str.replace("\\", "");

【讨论】:

  • 我喜欢你从大局出发。
【解决方案2】:

\\是字符串转义后的\,也是正则表达式try中的转义字符

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

(不要忘记分配结果)

此外,如果您在需要正则表达式的地方使用某个字符串作为输入,则 IMO 使用 Pattern#quote 会更安全:

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

【讨论】:

    【解决方案3】:

    你应该试试这个:

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

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

    【讨论】:

    • 虽然我认为你是对的,但你也应该解释原因。
    • java 转义 \ 并且正则表达式需要转义 \ 所以 2X2 = 4 :)
    猜你喜欢
    • 2012-07-15
    • 2015-01-14
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    相关资源
    最近更新 更多