Splite在拆分字符串时非常有用,但我在处理CSV文件时遇到问题,CSV文件是用逗号","来分列的,如下:
张三,男,20,这小子不是好人
这种情况用splite函数处理是没有问题题,但有时值中会含有逗号,这时excel会用引号把值包起来,如下:
张三,男,20,"这小子是个党员,不是好人"
这种情况简单用Splite处理就不行了,虽然自己写代码分析也能处理,但很烦,最主要是容易出错,埋下隐患,有没有什么简单的处理方法?

解决方案 »

  1.   

    string s = @"张三,男,20,""这小子是个党员,不是好人""";
    string[] rs = Regex.Split(s, @"(?<=^\w+|,\w+),");
    foreach (string r in rs)
    Console.WriteLine(r.Trim('"'));
      

  2.   

    或者直接这样:
    string s = @"张三,男,20,""这小子是个党员,不是好人""";
    string[] rs = Regex.Split(s, @"(?<=^\w+|,\w+)[,""]+");
    foreach (string r in rs)
    Response.Write(r + "<br/>");