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

将java字符串转换为与replaceAll中的正则表达式兼容的字符串,java,regex,replace,replaceall,Java,Regex,Replace,Replaceall,是否有库或任何简单的方法来转换字符串,并确保其与正则表达式兼容,以便在另一个字符串中查找和替换。因此,如果字符串是“$money”,它将被转换为“\$money”。我尝试使用StringEscapeUtil.escape,但它无法处理$等字符。您可以使用。在字符串前面加上\\Q,在末尾加上\\E: "\\Q$money\\E" 这告诉正则表达式引擎,\Q和\E之间的字符串必须逐字解释,忽略它可能包含的任何元字符。谢谢!显然,Pattern.quote()就是这样做的。但是如果字符串中包含\\E

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

您可以使用。

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

"\\Q$money\\E"

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

谢谢!显然,Pattern.quote()就是这样做的。但是如果字符串中包含
\\E
,该怎么办?