Java是否有一种内置的方法来转义任意文本,以便它可以包含在正则表达式中?例如,如果我的用户输入“$5”,我希望精确匹配它,而不是在输入结束后输入“5”。


当前回答

我想你想要的是Q$5\E。另请参阅Java5中引入的Pattern.quote(s)。

有关详细信息,请参阅Pattern javadoc。

其他回答

从Java 1.5开始,是的:

Pattern.quote("$5");

我想你想要的是Q$5\E。另请参阅Java5中引入的Pattern.quote(s)。

有关详细信息,请参阅Pattern javadoc。

这时响应可能为时已晚,但您也可以使用Pattern。LITERAL,它会在格式化时忽略所有特殊字符:

Pattern.compile(textToFormat, Pattern.LITERAL);

^(否定)符号用于匹配不在字符组中的内容。

这是正则表达式的链接

下面是关于否定的图片信息:

模式之间的差异。引用和Matcher。在我看到下面的例子之前,我不清楚

s.replaceFirst(Pattern.quote("text to replace"), 
               Matcher.quoteReplacement("replacement text"));