我正在创建一个逗号分隔值的字符串数组。 我需要在逗号上分割行,但不要在引号内分割逗号,因为它可能是数据的一部分。
例如:
\"421 15th Ave.\",\"Beaver Falls, PA\",\"S1\",
我不希望它在城市和州之间分配一个新领域。
以下是目前的代码:
string[] fields = Regex.Split(lines[i], @",(?=(?:[^""]*""[^""]*"")*(?![^""]*""))");
执行需要很长时间。 我可以使用更好的选择吗?
感谢您提供任何帮助。
答案 0 :(得分:1)
您是否考虑过使用CSV阅读器? 这个CSV-Reader应该已经处理双引号内的逗号: OpenCsv
请参阅Ravi Thapliyal在此主题中关于如何使用它的答案:link
对于C#,我可以推荐这个CsvHelper:https://github.com/JoshClose/CsvHelper
我们在项目中使用它,非常方便