0

我编写了一个桌面应用程序来帮助一些同事处理他们拥有的一些巨大的 .csv 文件。一行(行)中的每个“列”都用引号引起来,所以它看起来像这样:

“某事”、“等等”、“另一件事”、“等等”

我的简单小程序读取一行,使用 String.Split(',') 函数获取一个值数组,然后我开始处理......直到我遇到这样的一行:

“某物”、“等等”、“值、1、2、3”、“等等”

引用值中的逗号使 Split 函数以意想不到的方式运行。

是否有一种“简单”(内置)方式可以处理输入正确解析上述示例的行?我想避免必须编写自己的逻辑来跋涉每一行。

我怀疑使用正则表达式可能是幸福的关键。

提前感谢您提供的任何帮助。

4

2 回答 2

2

There are a lot of edge cases when dealing with quoted strings in CSV and commas/quotes within them. I'd recommend using a library like CsvHelper (or one of the others available in NuGet) that have already figured out the logic and tested it.

Other options:

于 2013-06-28T19:42:33.787 回答
0

您可以修剪第一个和最后一个引号,然后它看起来像 ->

something", "blah-blah", "Values, 1, 2, 3", "etc and so forth

然后你可以拆分“,”,比如

 String.Split(@""", """);

或先进行拆分,然后 .Replace(@"""", "");

于 2013-06-28T19:40:13.790 回答