我想在Java正则表达式中匹配\Q
和\E
。
我正在编写一个程序,它将计算字符串的长度,与模式匹配(该程序假定除了{some number}之外没有任何正则表达式中的量词,这就是为什么字符串的长度是唯一定义的)并且我想要首先删除所有表达式,如\Qsome text\E
。
但像这样的正则表达式:
"\\Q\\Q\\E\\Q\\E\\E"
显然不起作用。
答案 0 :(得分:4)
逃避反斜杠。序列\\\\
与文字反斜杠匹配,因此要匹配文字\Q
:
"\\\\Q"
并匹配文字\E
:
"\\\\E"
通过使用[...]
明确表示每个序列与单个字符匹配,您可以使维护者更具可读性,如下所示:
"[\\\\][Q]"
答案 1 :(得分:4)
String s = "\\Q\\Q\\E\\Q\\E\\E";
String escaped = Pattern.quote(s);