按空格拆分字符串但忽略引号内的空格

时间:2012-08-06 15:13:23

标签: c# regex csv split

我有一个大字符串,它从csv文件中获取数据,但是在使用正则表达式时,例如:

Regex regex = new Regex(@"\w+|""[\w\s]*""");

它会拆分每个字母吗? foreach行没有空格,只在行的末尾 - 但不应该切割双引号内有空格的行。

  

示例:test1,test2,test3,test4,test5,“test 6”,test7(new   线)test8,test9等

有人可以指导我朝正确的方向发展吗?感谢

2 个答案:

答案 0 :(得分:4)

我建议引用an existing solution而不是重新发明你自己(除非你要学习经验!)解析CSV比看起来更棘手。

编辑:没看到您使用的是C#。 Here are more links

答案 1 :(得分:1)

使用现有的CSV解析器,而不是尝试使用Regex - 格式很微妙,如您所见。

FileHelpers是一个受欢迎的库,Microsoft.VisualBasic.FileIO名称空间中存在TextFieldParser