Java和正則表達式都具有特殊的轉義序列,二者均與\
開始。
你的問題在於在Java中編寫字符串文字。 Java的轉義序列在編譯時就已經解決了,就在字符串被傳遞到Regex引擎進行解析之前。
序列"\+"
會引發錯誤,因爲這不是有效的Java字符串。
如果您想將\+
傳遞到您的Regex引擎中,您必須明確讓Java知道您想使用"\\+"
傳遞反斜槓字符。
所有有效的Java轉義序列如下:
\t Insert a tab in the text at this point.
\b Insert a backspace in the text at this point.
\n Insert a newline in the text at this point.
\r Insert a carriage return in the text at this point.
\f Insert a formfeed in the text at this point.
\' Insert a single quote character in the text at this point.
\" Insert a double quote character in the text at this point.
\\ Insert a backslash character in the text at this point.
@kocko非常感謝.... **但爲什麼我必須\\ +字符**爲什麼不\? –
因爲'+'是一個正則表達式的特殊字符,'split'接受正則表達式 –
@JordiCastilla,但正如我所知的split接受String。有沒有特殊類型的分割字符串? IDE通知我這些錯誤。我沒有編譯這個。 –