HNYTAOY (Dry version of … Happy New Year To All Of You)
I am trying to get an array of email addresses from a string , as this
string is coming from an input textarea in a from, even if I ask for a
blank between each address, users will also enter some return
characters…
so I get something like :
to_string =
“[email protected]\r\[email protected]\r\[email protected]
[email protected]”
I know how to use a_string.scan(" "), but here I should use a regex…
after many try … could not find the correct one…
could someone make 2007 starting on right tracks… thanks a lot !!
joss
On 2007-01-04 12:47:06 +0100, Josselin [email protected] said:
“[email protected]\r\[email protected]\r\[email protected]
[email protected]”
I know how to use a_string.scan(" "), but here I should use a regex…
after many try … could not find the correct one…
could someone make 2007 starting on right tracks… thanks a lot !!
joss
On Jan 4, 2007, at 6:55 AM, Josselin wrote:
I know how to use a_string.scan(" "), but here I should use a
regex… after many try … could not find the correct one…
could someone make 2007 starting on right tracks… thanks a lot !!
joss
forgot to mention what I wwrote until now :
to_string.split(%r{\r\n\s*}) which gives me teh addresses
separated by \r\n , but I missed the addresses separated by spaces
I would just scan for email addresses. I got this:
to_string.scan(/[A-Z0-9._%-]+@[A-Z0-9.-]+.[A-Z]{2,4}/i)
From this site:
http://www.regular-expressions.info/email.html
Which seems to do the job reasonably well.
Happy new year to you too!
-Mat
On 2007-01-04 13:07:32 +0100, Mat S. [email protected] said:
so I get something like :
by \r\n , but I missed the addresses separated by spaces
-Mat
thanks Mat… I got it too… my concern is getting all adresses in one
array…
It seems that I could do a scan first to replace the \r\n by a space
then doing a split on space character will give me the array
finally I’ll use the regex to chexk each email address ( I am using a
Rails plugin validates_as_email , based on RFC2822 with a possibility
to perform an online checking if needed)
Joss
On 04.01.2007 13:07, Mat S. wrote:
On Jan 4, 2007, at 6:55 AM, Josselin wrote:
forgot to mention what I wwrote until now :
to_string.split(%r{\r\n\s*}) which gives me teh addresses separated
by \r\n , but I missed the addresses separated by spaces
I would just scan for email addresses.
Yeah, that’s what I’d also prefer over splitting.
I got this:
to_string.scan(/[A-Z0-9._%-]+@[A-Z0-9.-]+.[A-Z]{2,4}/i)
From this site:
How to Find or Validate an Email Address
Which seems to do the job reasonably well.
Hm, IMHO the domain part could be a bit better with respect to dots.
Something like
(?:[A-Z0-9-]+.)+[A-Z]{2,4}
In some circumstances something simple like this will even work
[^\s@]+@[^\s@]+
And I bet there is a ton of variants…
Cheers
robert
On 1/4/07, James Edward G. II [email protected] wrote:
to_string.split
That seems easier than a regex to match an email.
James Edward G. II
That’s definitely easier. And more certain.
On Jan 4, 2007, at 5:55 AM, Josselin wrote:
forgot to mention what I wwrote until now :
to_string.split(%r{\r\n\s*}) which gives me teh addresses
separated by \r\n , but I missed the addresses separated by spaces
You can split() on any whitespace characters with:
to_string.split
That seems easier than a regex to match an email.
James Edward G. II
On Jan 4, 2007, at 8:06 AM, James Edward G. II wrote:
That seems easier than a regex to match an email.
/me slaps his forehead
agreed…
-Mat