在拆分字符串時我希望通過\來拆分,可是用\\來拆分的時候遇到
Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 \錯誤,後來用\\\\來匹配就沒有問題了。
附上測試代碼:
- import java.util.Arrays;
- import java.util.regex.Pattern;
- /**
- * 正則的反斜槓問題
- * 本類是測試根據給定\拆分字符串
- */
- public class Test {
- public static void main(String[] args) {
- String sina = "http:\\\\www.sina.com\\sports";
- System.out.println(sina);
- /**
- * 正則表達式需要轉義用\\表示\;
- * 而java的源代碼裏,字符串中需要轉義用\\表示\。
- * 因此累加在一起就必須是四個斜線\\\\;
- */
- String[] url = sina.split("\\\\");
- System.out.println(Arrays.toString(url));
- //當然也可以用正則表達式的編譯表示形式,這樣就可以達到複用的效果
- Pattern p1 = Pattern.compile("\\\\");
- String[] url2 = p1.split(sina);
- System.out.println(Arrays.toString(url2));
- }
- }
輸出結果:
http:\\www.sina.com\sports
[http:, , www.sina.com, sports]
[http:, , www.sina.com, sports]