在拆分字符串时我希望通过\来拆分,可是用\\来拆分的时候遇到
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]