从一个文本块中提取电子邮件地址

如何创建一个文本块中包含的电子邮件地址数组? 我试过了

addrs = text.scan(/ .+?@.+? /).map{|e| e[1...-1]}

但是(毫不奇怪)它不能可靠地工作。

对于(稍微)更好的正则表达式,这是怎么回事

 \b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[AZ]{2,4}\b 

你可以在这里找到:

电子邮件正则表达式

仅仅是一个FYI,您的电子邮件的问题是您在电子邮件地址之前或之后只允许一种类型的分隔符。 如果用空格分隔,您将单独匹配“@”。