将java字符串转换为与replaceAll中的正则表达式兼容的字符串[重复]

Posted

技术标签:

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

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

"\\Q$money\\E"

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

【讨论】:

谢谢!显然这就是 Pattern.quote() 所做的。 但是如果字符串中包含\\E 呢?

以上是关于将java字符串转换为与replaceAll中的正则表达式兼容的字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将 Java 模式 replaceAll 转换为 c#

java replaceAll 正则表达式的用法

Java 中的 replace() 和 replaceAll()

如何将flutter中的日期解析为与Java ZonedDateTime兼容的json字符串

关于JAVA基础的字符串的replaceAll方法

String.replaceAll()方法替换字符串中的反斜杠()