在配额之间用分号替换逗号

时间:2012-01-18 23:48:32

标签: c# vb.net ssis

我有一个csv文件,我从中获取数据到表中。 例: “ABC”,1, “苹果” 要求是字符串将在配额“”内,而整数将没有引号。 上面的行将分为三列。 我正在使用流阅读器类使用line.split(',')将行拆分为列。它工作得很好,不幸的是我在一个文件中有一条记录,其中有这样的字符串引号之间有一个逗号 “ABC,DEF,GHI”,2, “橙色”。 因此,现在它们不是3列,而是作为五列,所有转换都失败了。 任何人都可以帮我编写C#中的脚本,它将配额之间的逗号替换为分号,不要触及列之间的逗号。

谢谢。

2 个答案:

答案 0 :(得分:3)

您的CSV可能符合RFC 4180标准。使用RFC 4180解析器。其中许多存在。检查一下:http://www.codeproject.com/KB/database/CsvReader.aspx

答案 1 :(得分:2)

这个问题在这里得到解答: Java: splitting a comma-separated string but ignoring commas in quotes

您可以使用相同的正则表达式",(?=([^\"]*\"[^\"]*\")*[^\"]*$)" 并使用C#方法Regex.Split()

相关问题