【发布时间】:2011-10-20 08:29:40
【问题描述】:
我继承了一些使用正则表达式来解析 CSV 格式数据的代码。之前它不需要处理空字符串字段,但是要求已经改变,因此空字符串字段是可能的。
我已经改变了正则表达式:
new Regex("((?<field>[^\",\\r\\n]+)|\"(?<field>([^\"]|\"\")+)\")(,|(?<rowbreak>\\r\\n|\\n|$))");
到这里
new Regex("((?<field>[^\",\\r\\n]*)|\"(?<field>([^\"]|\"\")*)\")(,|(?<rowbreak>\\r\\n|\\n|$))");
(即我已将 + 更改为 *)
问题是我现在最后得到了一个额外的空白字段,例如“ID,Name,Description”返回四个字段:“ID”、“Name”、“Description”和“”
谁能看出原因?
【问题讨论】:
-
我不熟悉 C#,但没有能够解析 CSV 的包/模块/类吗?
-
不是开箱即用 @Felix,但那里有大约 17.2 亿个实现。
-
你想处理什么:
Id,,Name? -
Id,,Name 就是一个例子,是的。我也想处理 ,Name 和 Id,