R – Extract email addresses from a block of text


How can I create an array of email addresses contained within a block of text?
I've tried

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

but (not surprisingly) it doesn't work reliably.

Best Solution

Howabout this for a (slightly) better regular expression


You can find this here:

Email Regex

Just an FYI, the problem with your email is that you allow only one type of separator before or after an email address. You would match "@" alone, if separated by spaces.