【问题标题】:Convert java string to string compatible with a regex in replaceAll [duplicate]将java字符串转换为与replaceAll中的正则表达式兼容的字符串[重复]
【发布时间】:2013-06-17 23:40:54
【问题描述】:

是否有库或任何简单的方法来转换字符串并确保其与正则表达式兼容,以便在另一个字符串中查找和替换。因此,如果字符串是“$money”,它将被转换为“\$money”。我尝试使用 StringEscapeUtil.escape,但它不适用于 $ 等字符。

【问题讨论】:

    标签: java regex replace replaceall


    【解决方案1】:

    您可以使用Pattern.quote("$money")

    【讨论】:

      【解决方案2】:

      在字符串前面添加\\Q,在末尾添加\\E

      "\\Q$money\\E"
      

      这告诉正则表达式引擎\Q\E 之间的字符串必须逐字解释,忽略它可能包含的任何元字符。

      【讨论】:

      • 谢谢!显然这就是 Pattern.quote() 所做的。
      • 但是如果字符串中包含\\E 呢?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-09
      • 2017-05-15
      • 1970-01-01
      • 1970-01-01
      • 2019-11-24
      • 2016-12-03
      相关资源
      最近更新 更多