Your skill will accomplish what the force of many cannot |
|
PerlMonks |
Re: finding emailsby Enlil (Parson) |
on Nov 11, 2002 at 22:57 UTC ( [id://212134]=note: print w/replies, xml ) | Need Help?? |
The if/elsif statements evaluate to true if the regular expression is true, and once it is true it goes through the stuff in the block, and skips the rest of your elsif statements (as well as any other matches in that line, as it is never told to look for another one, even though the g is there it never returns). You might want each individual regular expression in its own while loop (I am sure there are more efficient ways of doing this.) and then passing the resulting values to a hash. for example:
This way the loop will continue while there exists anything else in the text that matches the regular expression. Update:Another thing I was thinking of is you could split the stuff in the line into "words" and then run the expressions against each "word", as I will assume that each of your emails is seperated by something or other (be it a space, or something else), and then you won't have the problem of the second e-mail not matching as each "word" will at most have one e-mail in it. -enlil
In Section
Seekers of Perl Wisdom
|
|