Hi,有一个字符串
hia,haha\\,heihei
我想用,来把它们split开来,但是这样的,又不能以\开头,即得到的结果应该是:[0]hia
[1]haha\,heihei如何能做到这一点呢,如果我使用
line.split("[^\\\\],")
会导致,前面的那个字符在切割的时候也被消耗掉,就成了[0]hi
[1]haha\,heihei不知有没有什么合适的正则表达式呀,谢谢!

解决方案 »

  1.   


    public static void main(String[] args) {
    String str = "hia,haha\\,heihei";

    String reg = "";

    String[] strs = str.split("(?<!\\\\),");
    for(String s:strs)
    {
    System.out.println(s);
    }
    }结果:
    hia
    haha\,heihei
      

  2.   

    \ 在java语言里是特殊字符,需要转义。你想要的结果是hia  haha\\  heihei?还是hia  haha  heihei
      

  3.   

    hia,haha\\,heihei  其中的一个\本来就是转义字符,直接打印该字符串也是:hia,haha\,heihei ,分割后将子串赋给数组的时候就需要转义将\去掉,打印出来肯定是:hia   haha\   heihei,如果要这么多2个\才可以实现:hia,haha\\\\,heihei。