现在有一字符串 abc,d\,e,fgh用split方法分组
现在要按,分组但是要排除\,
想要的分组为 abc  d\,e  fgh
如果我表达式写成 /[^\\],/
它会把,前的一个字符也整进去,结果变成ab  d\,  fgh
请问这个正则式应该如何写?

解决方案 »

  1.   

    /(?=[^,])[^,\\]*(?:\\.[^,\\]*)*/gjavascript:alert('abc,d\\,e,fgh'.match(/(?=[^,])[^,\\]*(?:\\.[^,\\]*)*/g).join('\n..........\n'));
      

  2.   

    直接使用逗号没有任何问题啊!!
    楼主可以测试一下代码:
    alert("abc,d\,e,fgh".split(",")[1])结果为d
      

  3.   


    array = str.match(/(?:[^,\\]|\\.)+/g);
      

  4.   


    其实用那种a*(?:ba*)*的方式,是因为能快一点...因为能减少不必要的分支产生
    不过测试,好像也没快多少= =,仅仅只有一点点...= = 可能用固化还没有那个效率高.(这个没测试)