Reputation:
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.
Upvotes: 4
Views: 3831
Reputation: 4426
Howabout this for a (slightly) better regular expression
\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b
You can find this here:
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.
Upvotes: 9