Ruby:如何处理带有"坏逗号"的CSV文件?

Shp*_*ord 1 ruby csv parsing

我需要从FedEx.com处理包含送货历史的CSV文件.不幸的是,FedEx似乎并没有真正测试其CSV文件,因为它没有引用其中包含逗号的字符串.

例如,公司名称可能是"Dog Widgets,Inc." 但CSV不引用该字符串,因此任何CSV解析器都会在"Inc."之前认为该逗号 是一个新领域的开始.

有什么办法可以使用Ruby可靠地解析这些行吗?

我能找到的唯一区别特征是,作为字符串一部分的逗号在此之后有一个空格.分隔字段的逗号没有空格.不知道这有助于我解析这个,但这是我注意到的.

gho*_*g74 9

你可以使用负向前瞻

>> "foo,bar,baz,pop, blah,foobar".split(/,(?![ \t])/)
=> ["foo", "bar", "baz", "pop, blah", "foobar"]
Run Code Online (Sandbox Code Playgroud)