【发布时间】:2016-01-01 02:50:54
【问题描述】:
有没有办法告诉 CSV 对象引号之间的换行符不是行分隔符?
我的 CSV 文件是:
"a","b","c"
1,"some
text with line break",21
2,"blah",4
我的代码是:
CSV.foreach(file_path, headers: true) do |row|
puts row
end
我希望它只返回两行,但它返回三行。
【问题讨论】:
-
如果换行符不是行分隔符,那是什么?
-
换行符是行分隔符,但是当引号之间出现新行时,例如。 "asd \n asdf" 它不应被视为两行。
-
它返回精确的三行 - 这是它应该工作的方式。但如果您的评论不正确,可能会返回四个。以其他方式,您的所有行都会建议为一行...不是吗?
-
您可以使用正则表达式预处理引号内的每个文本部分并删除任何内部“\n”
-
不包括标题返回三行:[["1","some"],["text with line break", "21"],["2","blah","3 "]]。我希望它返回两行: [["1", "some\n text with line break","21"], ["2","blah","4"]
标签: ruby-on-rails ruby csv