tags:

views:

283

answers:

2

i want to find name and email from following formats (also if you know any other format that been getting use in mail application for sending emails, please tell in comment :))

how can i know name and email for following format strings (its one string and can be in any following format):

 - [email protected]
 - james [email protected]
 - "James Jordan" <[email protected]> (gmail format)
 - janne - [email protected] (possible format)
A: 

If you only have those strings, it is going to require more work than a simple regular expression. For instance, your first example doesn't include the full name, it is only the e-mail, thus, you would have to use the Microsoft Live ID API to retrieve that information...and that turns out to be really hard.

What exactly are you trying to do? Perhaps there is another way?

Topher Fangio
im making an invitation app, for importing contacts and sending them invitation for the site.
Basit
importing contacts from what?
Ether
+2  A: 

The answer is straightforward, at least for the email portion. The rest can be special-cased away.

(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])

Proof I'm not insane.

Stefan Kendall
really obvious :)
Dmitry