在大数据流中查找电子邮件地址

4 ruby regex email-validation

仍未解决:(   [2月11日]

我有一个充满随机数据的大文本文件,想要从中提取所有的电子邮件地址.

我想在Ruby中这样做,伪代码如下:

monster_data_string = "asfsfsdfsdfsf  sfda **joe@example.com** sdfdsf"
monster_data_string.match(EMAIL_REGEX)
Run Code Online (Sandbox Code Playgroud)

有谁知道我会使用什么Ruby电子邮件正则表达式来完成这个?

请记住,我正在寻找Ruby的答案.我已经尝试了通过谷歌搜索发现的大量正则表达式,但大多数都会导致Ruby运行时错误,说明"+"和" " 这样的字符无效/无法识别.*

我已经尝试过的是:

monster_data_string.match(/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i)
Run Code Online (Sandbox Code Playgroud)

但我收到Ruby错误,指出"+"是一个无效的字符

提前致谢

小智 14

看这个...

f =  File.open("content.txt")
content = f.read    
r = Regexp.new(/\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}\b/)     
emails = content.scan(r).uniq                                    
puts YAML.dump(emails)    
Run Code Online (Sandbox Code Playgroud)

  • joe@fun.museum失败了 (3认同)