使用Ruby从包含名称,空格和电子邮件的字符串中提取电子邮件数组

时间:2014-06-13 06:19:54

标签: ruby regex

字符串很长,包含名字,姓氏,许多空格和电子邮件。有时名字丢失了。我正在尝试使用Ruby脚本将所有电子邮件解压缩到一个数组中。我将如何实现这一目标?

我发现这是最好的正则表达式:

^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$

我的字符串看起来像:

"first name last name       abc@hotmail.com  firstname def@gmail.com"

如何创建循环字符串并将电子邮件推送到数组中的函数?

1 个答案:

答案 0 :(得分:0)

电子邮件没有空格,因此您可以使用正则表达式/\S+@\S+/

irb(main):004:0> "first name last name       abc@hotmail.com  firstname def@gmail.com".scan(/\S+@\S+/)
=> ["abc@hotmail.com", "def@gmail.com"]

\S匹配非空白字符。