我这儿有一个字符串: aaa,BBB=[a,b],CCC=[c,d] 我想用String.split(",")进行分组这个字符串,但是中括号里面的,号不需要做为分隔符,我想要的结果如下:
aaa
BBB=[a,b]
CCC=[c,d] 
那位大哥给写个正则表达式,小弟这儿先谢谢了!

解决方案 »

  1.   

    "aaa,BBB=[a,b],CCC=[c,d]".split(",(?!\\w+])");
      

  2.   


    厉害。 不过。
    这个好像只是用右边没有]的,来split。String str = "aaa,BBB=[a,b],CCC=[c,d";
    这个的情况,最后c d之间的,就没有使的CCC=[c 和d分开。请问要精确匹配只有[]外面的,才split呢?
      

  3.   


    public static void main(String[] args) {
    String regex = "(?!\\[\\w+),(?!\\w+])";


    String str = "aaa,BBB=[a,b],CCC=[c,d]";
    String tokens[] = str.split(regex);
    for (String c : tokens) {
    System.out.println(c);
    }
    System.out.println("--------------------------");
    str = "aaa,BBB=[a,b],CCC=[c,d";
    tokens = str.split(regex);
    for (String c : tokens) {
    System.out.println(c);
    }
    }
    我改了下好像更好了。 :)
    楼主看下下。
      

  4.   

            String regex = "(?!\\[[^,]+),(?![^,]+])";
                    
            String str = "aaa,BBB=[中文#,$#@],CCC=[c,d]";    
            String tokens[] = str.split(regex);
            for (String c : tokens) {
                System.out.println(c);
            }