2012-01-19 28 views
1

我想在Java正則表達式中匹配\Q\E。 我正在寫一個程序,它將計算字符串的長度,匹配到模式(該程序假定除了{某個數字}之外,沒有任何正則表達式中的量詞,這就是爲什麼字符串的長度是唯一定義的),而我首先要刪除所有表達式,如\Qsome text\E。 但正則表達式是這樣的:如何在Java正則表達式中匹配 Q和 E?

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

顯然是行不通的。

回答

4

使用Pattern.quote(...)

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

只是逃避反斜槓。 \\\\匹配反斜槓序列,所以要匹配一個\Q

"\\\\Q" 

,並匹配一個\E

"\\\\E" 

您可以通過很明顯,使它成爲一個維護者更可讀每個序列採用[...]匹配單個字符如:

"[\\\\][Q]"