如何在Java正则表达式中匹配\ Q和\ E?

时间:2012-01-19 16:35:07

标签: java regex

我想在Java正则表达式中匹配\Q\E。 我正在编写一个程序,它将计算字符串的长度,与模式匹配(该程序假定除了{some number}之外没有任何正则表达式中的量词,这就是为什么字符串的长度是唯一定义的)并且我想要首先删除所有表达式,如\Qsome text\E。 但像这样的正则表达式:

"\\Q\\Q\\E\\Q\\E\\E"

显然不起作用。

2 个答案:

答案 0 :(得分:4)

逃避反斜杠。序列\\\\与文字反斜杠匹配,因此要匹配文字\Q

"\\\\Q"

并匹配文字\E

"\\\\E"

通过使用[...]明确表示每个序列与单个字符匹配,您可以使维护者更具可读性,如下所示:

"[\\\\][Q]"

答案 1 :(得分:4)

使用Pattern.quote(...)

String s = "\\Q\\Q\\E\\Q\\E\\E";
String escaped = Pattern.quote(s);