C#解析带引号的CSV文本,其中包含带引号的字段

时间:2013-01-31 20:39:12

标签: c# parsing text csv

我有一个CSV文件,所有字段都有引用文字。我的问题是,引号内的引号如下。

"John Doe","I have a 17" screen","Something "A" something else",....

我尝试过Microsoft.VisualBasic.FileIO和LumenWorks.Framework.IO.Csv,两者都不允许在这些字段中使用引号。

3 个答案:

答案 0 :(得分:2)

如果您没有选择在源文件中使用正确的双引号并需要手动解析,这可能会对您有所帮助:

var split = theCsv.Split(',');
var noQuotesCollection = split.Select(p =>
{
    if (p.StartsWith("\"") && p.EndsWith("\"") && p.Length > 1)
        return p.Substring(1, p.Length - 2);
    return p;
});

答案 1 :(得分:1)

要在CSV文件中包含引号,您必须使用双引号。

这是一个示例

“这里有一些文字”,“这里有一些文字”,“这里有一些带引号的文字”,“Hello World”“”

答案 2 :(得分:0)

您是否尝试将字符串拆分为“,”?假设整个文件中的一致性应该有效。当然,如果你在一个领域内有一个“内部”,那你就不幸了。

检查this SO thread以查看拆分多个字符的示例。