基本上我正在阅读一个大的csv文件,它有一些错误。少数列用dot
而不是comma
分隔。有人知道有什么方法可以继续运行这些线路吗?第二行"test"之间的错误示例。"测试":
CSV.foreach("#{Rails.root}/tmp/test.csv") do |row|
puts "Mrs","test","test","U26453"
puts "Mr","test"."test@emai.com","U50406" - CSV::MalformedCSVError: Missing or stray quote in line 2
end
Thank you
你可以写一个小的正则表达式,它将被不同的字符分割:
split(/[,.]/)
v = '"Mrs","test","test","U26453"'
v.split(/[,.]/)
=> [""Mrs"", ""test"", ""test"", ""U26453""]
更新:正如@gerep注意到的,当.
或,
在子字符串内时,上面的代码将不能正确分割。作为解决方案:
split(/"[,.]"/)