如何在Java中转义文本以进行正则表达式

时间:2020-03-05 18:52:36  来源:igfitidea点击:

Java是否具有内置的转义任意文本的方式,以便可以将其包含在正则表达式中?例如,如果我的用户输入" $ 5",我想在输入结束后精确匹配而不是" 5"。

解决方案

回答

从Java 1.5开始,是的:

Pattern.quote("");

回答

我认为我们所追求的是\ Q $ 5 \ E。另请参阅Java5中引入的Pattern.quote(s)

有关详细信息,请参见模式javadoc。

回答

在我看到以下示例之前,我不清楚" Pattern.quote"和" Matcher.quoteReplacement"之间的区别。

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