Peter Bailey
Peter Bailey

Reputation:

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.

Upvotes: 4

Views: 3831

Answers (1)

user54650
user54650

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:

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.

Upvotes: 9

Related Questions