【发布时间】:2015-05-23 19:49:25
【问题描述】:
我想要一个 CSV 解析器。但是,我想要以下内容:正则表达式必须检查 CSV 是否以逗号 , 结尾(否则正则表达式不能认为 CSV 有效)!如果 CSV 没问题,那么我会提取 , 之间的文本。
例子:
hello,world,end, //OK. CSV ends with ",". There are 3 matches: 'hello' 'world' 'end'
aa,bb,cc //NOT ok. CSV doesn't end with ",". No matches.
我有一个问题要问the regex suggested by @Denomales。如果 CSV 包含引号部分,则始终存在仅包含引号的匹配项。可以避免吗?
【问题讨论】:
-
请检查我更新的答案,我修改了your regex。
-
你应该在这里包含你的正则表达式,你不会投反对票。
-
基本正则表达式
(?=.*,$)([^,]+)(?:,) -
你没有做任何与CSV相关的事情,为什么它在问题主题中?
Does string end with a comma应该是主题。为此,它的,$。 CSV 与它有什么关系?? -
解析 dbl 引用的 csv 的最简单方法:
"是转义字符(?:^|,)\s*("[^"]*(?:""[^"]*)*"|[^,]*?)\s*(?=,|$)或 '\' 是转义(?:^|,)\s*("[^"\\]*(?:\\.[^"\\]*)*"|[^,]*?)\s*(?=,|$)。还有更多的选择可以做。但不推荐在分隔符上split。