我编写了一个桌面应用程序来帮助一些同事处理他们拥有的一些巨大的.csv文件。一行(行)中的每个“列”都是引号,所以它看起来像这样:
“某事”,“等等”,“另一件事”,“等等等等”
我简单的小程序读取一行,使用String.Split(',')函数获取值数组,然后关闭我去处理... UNTIL我按这样排:
“某事”,“blah-blah”,“价值观,1,2,3”,“等等等等”
引用值中的逗号使得Split函数以非预期的方式运行。
是否有一种“简单”(内置)方式可以处理输入正确解析上述示例的行?我想避免编写自己的逻辑来跋涉每一行。
我怀疑使用正则表达式可能是幸福的关键。
提前感谢您提供的任何帮助。
答案 0 :(得分:2)
在处理CSV中的引用字符串以及其中的逗号/引号时,存在许多边缘情况。我建议使用像CsvHelper这样的库(或NuGet中可用的其他库),它们已经找到了逻辑并对其进行了测试。
其他选择:
答案 1 :(得分:0)
您可以关闭第一个和最后一个引号,然后它看起来像 - >
something", "blah-blah", "Values, 1, 2, 3", "etc and so forth
然后你可以拆分","像
String.Split(@""", """);
或首先进行拆分,然后进行拆分。更换(@"""","");