找到一个模式并替换它的一个元素

时间:2016-02-16 00:05:25

标签: c# csv

我有以下问题:

我正在尝试拆分CSV文件的行,但有时我会阅读以下内容:

string input = "a,b,c,d,\"V=12.503,I=0.194\",e,f"

我使用以下代码

string[] SplittedLine= input.split(',');

结果是我得到了一个额外的列,因为数据\"V=12.503,I=0.194\"里面有逗号,但是当我用excel打开CSV文件时,我注意到Excel没有添加额外的列,因为它没有将该数据分成两个不同的数据。考虑到这种情况,如何正确拆分此CSV文件?

1 个答案:

答案 0 :(得分:0)

您在"细胞中遇到逗号"您的CSV,按惯例(但不是任何标准)通过用双引号包装单元格数据来转义。您还需要注意,报价转义字符串可以包含引号文字。

我们假设您有一个名称列,而某人的名字是

  

乔纳森"杰克"史密斯,小。

将编码为

  

"乔纳森""杰克"" Smith,Jr。"

您当然可以改进代码来处理这些情况。但是,之前已经解决了这个问题。如果您不想重新发明轮子,那么有许多可靠的开源库可以解决解析CSV文件的难题。我使用的是

http://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader