【问题标题】:C# Parse CSV with quoted text that have fields with quoesC# 使用带引号的字段解析 CSV
【发布时间】:2013-01-16 01:57:50
【问题描述】:

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

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

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

【问题讨论】:

  • 嵌入的应该加倍,例如"I have a 17"" screen" 格式正确,这就是库无法解析它的原因。如果您不控制源,则必须手动解析字符串。

标签: c# parsing text csv


【解决方案1】:

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

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;
});

【讨论】:

    【解决方案2】:

    为了在 CSV 文件中有引号,您必须使用双引号。

    这是一个示例

    "这里有一些文字","这里还有一些文字","这里有一些带引号的文字, ""Hello World"""

    【讨论】:

      【解决方案3】:

      您是否尝试在 "," 上拆分字符串?假设这在您应该工作的文件中是一致的。当然,如果你在一个字段中有一个内部的“,”你就不走运了。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-10
        • 1970-01-01
        • 2011-06-27
        • 2017-01-23
        • 2021-07-29
        • 2013-03-09
        • 1970-01-01
        • 2017-11-25
        相关资源
        最近更新 更多