Rails - 导入电子邮件的CSV文件

时间:2011-03-05 17:06:35

标签: ruby-on-rails ruby-on-rails-3

任何人都知道GEM导入了一封完整的电子邮件?

挑战在于给出一个电子邮件列表,如:

"fname lname" <yada@yada.com>, "fname lname" <yada@yada.com>, "fname lname" <yada@yada.com>, "fname lname" <yada@yada.com>, "fname lname" <yada@yada.com>, "fname lname" <yada@yada.com>, "fname lname" <yada@yada.com>, "fname lname" <yada@yada.com>, "fname lname" <yada@yada.com>

我想提取姓名和电子邮件,而不仅仅是电子邮件。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

Ruby拥有built-in CSV support,并且有很好的用于管理CSV文件的宝石,例如FasterCSV。话虽这么说,它看起来不像你有一个“正确的”CSV(存储表格数据),而只是一个由逗号分隔的数据列表。您可以使用this one之类的正则表达式来获取所需的日期:

data = '"Some Guy" <some@guy.com>, "Another Person" <another@person.com>, "One More" <one@more.com>'
regex = /("([^"]*)" <([^>]*)>)/

data.scan(regex) do |match|
  puts "Name: #{match[1]}, Email: #{match[2]}"
end

# Output:

Name: Some Guy, Email: some@guy.com
Name: Another Person, Email: another@person.com
Name: One More, Email: one@more.com