需要分割一个字符串,用逗号分割,单引号中的作为一个整体,但里面可能包含逗号,所以不能直接用split,我写了个正则表达式,但是分割的单引号旁边会有两个空行,求一个正确的正则表达式string ss = "'64031,TJ,Han',100401,54321,IL,CA,1075,10000,30,4000";
                        System.Text.RegularExpressions.Regex reg3 = new System.Text.RegularExpressions.Regex("['](.*)[']|[,]");
            ///开始分割字符串
            string[] name = reg3.Split(ss);

解决方案 »

  1.   

                string str = "'64031,TJ,Han',100401,54321,IL,CA,1075,10000,30,4000";
                string[] result = Regex.Split(str, @"(?<!'[^,]+),(?![^,]+')");
                foreach(string s in result)
                    Console.WriteLine(s);
      

  2.   

    right 和left right('abcd',4)
      

  3.   


    理事,如果"'6403134234,23423,423,234,TJ,Han',100401,54321,IL,CA,1075,10000,30,4000"怎么办
      

  4.   


                string ss = "'64031,TJ,Han','asdf,asdfasdf,asdfasdf,asdfasdf',100401,54321,IL,CA,1075,10000,30,4000";
                string[] sss = Regex.Split(ss, "(?n),(?<=^('[^']+',|[^']+,)+)");
                foreach (string s in sss)
                {
                    Console.WriteLine(s);
                }
      

  5.   

                string str = "'6403134234,23423,423,234,TJ,Han',100401,54321,IL,CA,1075,10000,30,4000";
                string[] result = Regex.Split(str, @"(?<!'[^',]+),(?![^']+')");
                foreach (string s in result)
                    Console.WriteLine(s);
      

  6.   

    其实这种偷懒的方式还是有问题的
    比如
    "'64031,TJ,Han,'asdfa,asdf'','asdf,asdfasdf,asdfasdf,asdfasdf',100401,54321,IL,CA,1075,10000,30,4000";如果要做到正确,最好还是用匹配和平衡组。
      

  7.   

    额 那你直接在后trim('\'')下不就行了嘛。如果非要这个效果 后面就……
      

  8.   


    #!/usr/bin/python
    # encoding: utf-8import re
    patt = re.compile(r'''
        '([^']+)', # '64031,TJ,Han',
        (\d+), # 100401,
        (\d+), # 54321,
        ([A-Z]{2}), # IL,
        ([A-Z]{2}), # CA,
        (\d+), # 1075,
        (\d+), # 10000,
        (\d+), # 30,
        (\d+) # 4000
        ''', re.I|re.U|re.X)content = '64031,TJ,Han',100401,54321,IL,CA,1075,10000,30,400064031,TJ,Han|100401|54321|IL|CA|1075|10000|30|4000
      

  9.   

    #!/usr/bin/python
    # encoding: utf-8import re
    patt = re.compile(r'''
        '([^']+)', # '64031,TJ,Han',
        (\d+), # 100401,
        (\d+), # 54321,
        ([A-Z]{2}), # IL,
        ([A-Z]{2}), # CA,
        (\d+), # 1075,
        (\d+), # 10000,
        (\d+), # 30,
        (\d+) # 4000
        ''', re.I|re.U|re.X)content = "'64031,TJ,Han',100401,54321,IL,CA,1075,10000,30,4000"m = patt.match(content)
    print '|'.join(m.groups())
    64031,TJ,Han|100401|54321|IL|CA|1075|10000|30|4000