我解析了以下CSV行。我需要拯救下面看起来像"Malformed"
的格式不正确的行。什么是我可以用来做这个的正则表达式?我需要做什么考虑?解析格式不正确的CSV行
body = %(
"Sensitive",2416,159,"Test "Malformed" Failure",2789,111,7-24-11,1800,0600,"R2","12323","",""
"Sensitive",2742,107,"Test",2791,112,7-24-11,1800,0600,"R1","","",""
"Sensitive",2700,135,"Test",2792,113,7-24-11,1800,0600,"R1","12110","","")
rows = []
body.each_line do |line|
begin
rows << FasterCSV.parse_line(line)
rescue FasterCSV::MalformedCSVError => e
rows << line if rescue_from_malformed_line(line)
rescue => e
Rails.logger.error(e.to_s)
Rails.logger.info(line)
end
end
你想采取与那样的线什么行动?我会建议分割,并删除引号,然后重新构建正确的csv并在下一行重新开始。 –
我想在ararys的数组中包含双引号。 – maletor
错误引用的文本是否包含逗号?为什么不在将CSV文件提交给应用程序之前将其脱机处理,而不是每次必须读取时都要修复它? –