aaa,bbb,ccc,"ddd,eee",fff要取逗号分割的数组,但是双引号当中的不要结果应该是aaa
bbb
ccc
"ddd,eee"
fff这个正则怎么写

解决方案 »

  1.   


     string tempStr = "aaa,bbb,ccc,\"ddd,eee\",fff";
                string pattern = @"[^,""]+|""[^""]+""";
                MatchCollection mc = Regex.Matches(tempStr,pattern,RegexOptions.Singleline);
                for (int i = 0; i < mc.Count;i++ )
                {
                    string text = mc[i].Value;//得到aaa bbb ccc \"ddd,eee\" fff
                   
                }
      

  2.   


                string str = @"aaa,bbb,ccc,""ddd,eee"",fff";
                string[] result = Regex.Split(str, @"(?<!""[^,]+),");
                foreach (string s in result)
                    Console.WriteLine(s);
    /*
    aaa
    bbb
    ccc
    "ddd,eee"
    fff*/
      

  3.   

    2楼的那个在js好用,不过有一个问题就是如果字符串是这样的
    aaa,bbb "ccc,ddd", eeeaaa
    bbb
    "ccc,ddd"
     
    eee
    这样了3楼的那个js里不支持<符号瓦