求一个.net中解析csv一行的正则表达式

.Net技术 码拜 5年前 (2016-06-08) 571次浏览
简单的:
ID,Name,Abstruct,Remark
1,张三,这是张三的简历,这是张三的备注
这种用split(“,”)就行了,关键中,还有这种,通过Excel转化过来的,就长这样:
ID,Name,Abstruct,Remark
1,张三,”这是张三的简历,他是一个很好的人,虽然说话不多”,”这是张三的备注,他参加工件多年,经验丰富,解决了很多技术难题”
这种就是双引号算一个单元格式内容 ,双引号里面有逗号,总之就是,假如没有双引号,就以逗号分隔,有双引号,里面的任何内容都不分隔。
希望高手支招,应该是要用正则表达式吧,正则本人只会最简单的,这个不会。
各位答案假如验证通过,回答最早的采,先谢谢了。
解决方案

40

用的笨法子,可以借鉴一下

private static string[] Split(string s)
{
    Regex regex = new Regex("".*?"");
    var a = regex.Matches(s).Cast<Match>().Select(m => m.Value).ToList();
    var b = regex.Replace(s, "%_%");
    var c = b.Split(",");
    for (int i = 0, j = 0; i < c.Length && j < a.Count; i++)
    {
        if (c[i] == "%_%")
        {
            c[i] = a[j++];
        }
    }
    return c;
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明求一个.net中解析csv一行的正则表达式
喜欢 (0)
[1034331897@qq.com]
分享 (0)