String str = "sdf,s1f\,sddf,123";
String[] arr = str.split("求该处正则");\,我想用来表示转义,这里的逗号不作为分隔符
也就是,我想得到的结果:
arr[0]=sdf
arr[1]=s1f\,sddf
arr[2]=123请问这个正则该怎么写?

解决方案 »

  1.   

    这个正则不好写,除非用String的方法截取。
      

  2.   

    你这个究竟是String str = "sdf,s1f\,sddf,123";
    String[] arr = str.split("求该处正则");str里是单\还是双\\? 你只要获取到下面的结果就行 还是一定要用正则了?!@
      

  3.   

    String[] t = str.split("(?!\\\\),");
    给分吧
      

  4.   

    这个不知道好写,不过可以用其他的方法,你先把“\,”替换成其他的字符如“&”,然后再用“,”分解,再遍历,把字符串里有“&”符号替换回来就行了。方法有点麻烦,但理解起来很简单
                       String str = "sdf,s1f\\,sddf,123";
    str = str.replaceAll("\\\\,", "&");
    System.out.println(str);
    String[] arr=str.split(",");
    for(int i=0;i<arr.length;i++){
    if(arr[i].indexOf("&")!=0){
    arr[i].replace("&", "\\,");
    }
    System.out.println(arr[i]);
    }
      

  5.   

    测试通过,这个语法叫做 反向不匹配。
    String[] t = str.split("(?<!\\\\),");
      

  6.   

    两个\\是一个代表一个\,不用多说,\\\\就代表两个,非java下,"\\\\,"这种的写法就是"\\,",在java下有一个通配符,所以代表"\,"
      

  7.   

    首先,楼主声明的字符串编译都通不过,我是用Eclipse测试的,所以我觉得改成
    String str = "sdf,s1f\\,sddf,123";
    但是这样就是输入了一个\的
    再次说下这位NB的人的这个方法,这个方法split后是4个数据!!不是楼主想要的3个,是:
    arr[0]=sdf
    arr[1]=s1f\
    arr[2]=sddf
    arr[3]=123我也不懂正则表达式多少,所以只要等解释了