參照下面的問題 - String.replaceAll single backslashes with double backslashesJava中,正則表達式,需要轉義反斜線在正則表達式
我寫了一個測試程序,我發現結果是在這兩種情況下都是這樣,我是否轉義反斜線或不。這可能是因爲 - \ t是一個公認的Java String轉義序列。 (試試吧,它會抱怨)。 - \ t被視爲正則表達式中的文字標籤。 我有點不確定的原因。
是否有關於在Java中轉義正則表達式的一般指導原則。我認爲使用兩個反斜槓是正確的方法。
我仍然想知道你的意見。
public class TestDeleteMe {
public static void main(String args[]) {
System.out.println(System.currentTimeMillis());
String str1 = "a b"; //tab between a and b
//pattern - a and b with any number of spaces or tabs between
System.out.println("matches = " + str1.matches("^a[ \\t]*b$"));
System.out.println("matches = " + str1.matches("^a[ \t]*b$"));
}
}
這是正確的,*「我相信」*沒有必要。 ''\\ t「'轉換爲Java字符串中的'」\ t「',這轉換爲正則表達式引擎中的製表符。 '「\ t」轉換爲Java字符串中的製表符,在正則表達式中保持不變。 – Tomalak 2012-02-02 13:53:03
謝謝。我明白。 – RuntimeException 2012-02-02 13:53:03
@Tomalak擺脫了'我相信'一點......對不起... – 2012-02-02 13:55:40