如何为正则表达式处理一个字符串

5

我有一个可能包含任何字符的 java.lang.String,是否有一种简单的方法来清理字符串(例如使用另一个类来完成这个操作?),并删除所有“危险”字符以供稍后的 java.util.regex.Matcher 或正则表达式处理(例如 $、^ 等)?


太复杂了,考虑将您的字符串作为Pattern.match(string)的参数而不是解析您的字符串。 - morgano
1
引用它们也可以吗?https://dev59.com/pXVD5IYBdhLWcg3wL4cA - Bart Kiers
2个回答

16

您可以使用

Pattern.quote(string);

用于在正则表达式中转义字符串。


5

您还可以使用\Q..\E转义序列。

以下是字符类中的元字符示例。

\Q..\E对中间的任何内容都视为字面量。


2
存在风险,\E 可能成为字符串的一部分,从而终止转义序列。使用 hsz 的答案是安全的。 - jlordo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接