我需要从FedEx.com处理包含送货历史的CSV文件.不幸的是,FedEx似乎并没有真正测试其CSV文件,因为它没有引用其中包含逗号的字符串.
例如,公司名称可能是"Dog Widgets,Inc." 但CSV不引用该字符串,因此任何CSV解析器都会在"Inc."之前认为该逗号 是一个新领域的开始.
有什么办法可以使用Ruby可靠地解析这些行吗?
我能找到的唯一区别特征是,作为字符串一部分的逗号在此之后有一个空格.分隔字段的逗号没有空格.不知道这有助于我解析这个,但这是我注意到的.
你可以使用负向前瞻
>> "foo,bar,baz,pop, blah,foobar".split(/,(?![ \t])/)
=> ["foo", "bar", "baz", "pop, blah", "foobar"]
Run Code Online (Sandbox Code Playgroud)