【问题标题】:replaceAll error [duplicate]replaceAll 错误 [重复]
【发布时间】:2017-10-09 09:20:24
【问题描述】:

这是我的正则表达式。我想找到左括号和右括号并将它们替换为“\(”和“\)”。

word = word.replaceAll(Pattern.quote("("), "\\" + "(").replaceAll(Pattern.quote(")"), "\\" + ")");

这是如果 word = "word)" 的输出:

New word is: word)

如您所见,它并没有改变任何东西。

【问题讨论】:

  • 为什么需要使用正则表达式来进行这样的简单替换?只需使用正常的替换功能,免去一些麻烦:word.replace("(", "\\" + "(").replace(")", "\\" + ")");
  • 谢谢你成功了。你可以把它放在答案中:)

标签: java regex


【解决方案1】:

尝试像这样使用\\\\

word = word.replaceAll(Pattern.quote("("), "\\\\" + "(")
        .replaceAll(Pattern.quote(")"), "\\\\" + ")");

或者没有Pattern.quote

word = word.replaceAll("\\(", "\\\\(").replaceAll("\\)", "\\\\)");

或者在您的情况下,您可以只使用替换:

word = word.replace("(", "\\(").replace(")", "\\)");

【讨论】:

    【解决方案2】:

    两个答案有效:

    word.replace("(", "\\" + "(").replace(")", "\\" + ")"); – OH GOD SPIDERS
    

    replacing \\ with \\\\ in the replaceAll - YCF_L.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-19
      • 2014-10-08
      • 1970-01-01
      • 2013-09-03
      • 1970-01-01
      • 2016-09-14
      • 2011-03-22
      • 1970-01-01
      相关资源
      最近更新 更多