ruby-on-rails - 使用 ruby​​ 从逗号分隔的文件中提取电子邮件

标签 ruby-on-rails ruby email

所以我购买了一个 txt 文件中的电子邮件列表,当然还有一堆电子邮件地址,尽管它们与我不太关心的其他文本混合在一起。最后,我只想提取电子邮件地址并将它们保存到一个新文件中。我如何使用 Ruby 完成此操作?

我还有很长的路要走,但我已经尝试过:

VALID_EMAIL_REGEX = /\A([\w+\-].?)+@[a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z/i

emails = "id,pwsid,pid,age,sex,domain,orderamount,first_order_amount,cobrand_id,show_lang,profile_type,handle,email
374380696,310579607_70200,g1067409-pct.subregmem,27,1,gmail.com,0,0,0,english,0,parineeti,rishav.kr2055@gmail.com
374380707,310579618_50472,g1067409-pct.subregmem,27,1,gmail.com,0,0,0,english,0,rajuhalchal,hopowertuls@gmail.com
374380708,310579619_86273,g1227112-pct.subposhgay,45,1,mail.com,0,0,21194,english,0,hertsmale2012,herstmale@mail.com
374380712,310579622_52452,p1911455.sub213,46,1,gmail.com,0,0,31384,english,0,anchezchris0360,Sanchezchris03@gmail.com"

emails_split = emails.split(/,/)

def keep_only_email(email)
  email =~ VALID_EMAIL_REGEX
end

keep_only_email(emails_split)

请帮忙,

干杯! 美联社

最佳答案

看起来这是一个 CSV 文件,你可以这样解析它。

require 'csv'    

csv_text = File.read('input.csv')
csv = CSV.parse(csv_text, headers: true)
file = File.open("output.csv", "w")
csv.each do |row|
  file.write("#{row['email']}\n")
end

关于ruby-on-rails - 使用 ruby​​ 从逗号分隔的文件中提取电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30956018/

相关文章:

ruby-on-rails - object_id 方法与 Fixnum 对象和 String 对象的区别

c++ - 谷歌 SketchUp API

php - Mail-Tester.com : Freemail in Reply-To, 但不是来自

ruby-on-rails - 无法使用 Rubber 连接到 ec2

ruby-on-rails - 如何在不执行 "update_attributes"的情况下执行 "before_save"?

ruby - 如何通过Middleman安装和使用Slim模板引擎

android - 通过 Android 应用程序发送邮件

php - CloudFlare 和 PHP mail() 函数……它们去哪儿了?

ruby-on-rails - Ruby 生成唯一整数用作主键

ruby-on-rails - 未检测到 Rails 预编译 Assets Yarn 可执行文件