与正则表达式文字匹配

如果需要匹配作为正则表达式语法一部分的字符,则可以将该模式的全部或部分标记为正则表达式文字。

\Q 标志着正则表达式字面的开头。\E 标志着正则表达式字面的结束。

// the following throws a PatternSyntaxException because of the un-closed bracket
"[123".matches("[123");

// wrapping the bracket in \Q and \E allows the pattern to match as you would expect.
"[123".matches("\\Q[\\E123"); // returns true

在不必记住\Q\E 转义序列的情况下,更简单的方法是使用 Pattern.quote()

"[123".matches(Pattern.quote("[") + "123"); // returns true