C# 读取CSV文件
CSV文件是用逗号作为分隔符的,所以如果是简单的CSV文件,用split(',')就可以了。
但是Excel 编辑CSV文件,且内容中有逗号,得到的csv文件如下:
"aaa,aaa",bbb,ccc
这时候split(',')就行不通了。
为了对应这种情况,写了一段简单的代码处理一下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | var result = new List< string >(); var filter = @"([^\""\,]*[^\""\,])|[\""]([^\""]*)[\""]" ; Match match = Regex.Match(line, filter, RegexOptions.IgnoreCase); while (match.Success) { if (! string .IsNullOrEmpty(match.Groups[2].Value)) { result.Add(match.Groups[2].Value); } else { result.Add(match.Value); } match = match.NextMatch(); } |
核心代码就是上面的正则表达式,它可以区分有双引号的部分和非双引号分割的部分。
1 | ([^\ "" \,]*[^\ "" \,]) 不以双引号及逗号做开头和结果的字符串[\ "" ]([^\ "" ]*)[\ "" ] 以双引号及逗号做开头和结果的字符串 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?