我解析了以下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文件提交給應用程序之前將其脫機處理,而不是每次必須讀取時都要修復它? –