This accepts RFC 2822 email addresses in the form:<br>
blah@blah.com OR<br>
Blah &lt;blah@blah.com&gt;<br>
<br>
RFC 2822 email 'mailbox':<br>
mailbox = name-addr | addr-spec<br>
name-addr = [display-name] "<" addr-spec ">"<br>
addr-spec = local-part "@" domain<br>
domain = rfc2821domain | rfc2821domain-literal<br>
<br>
local-part conforms to RFC 2822.<br>
<br>
domain is either:<br>
An rfc 2821 domain (EXCEPT that the final sub-domain must consist of 2 or more letters only).<br>
OR<br>
An rfc 2821 address-literal.<br>
(Note, no attempt is made to fully validate an IPv6 address-literal.)<br>
<br>
Notes:<br>
This pattern uses (.NET/Perl only?) features named group "(?&lt;name&gt;)" and alternation/IF (?(name)).<br>
<br>
See <a href="http://regexadvice.com/forums/permalink/26742/26742/ShowThread.aspx#26742">this regexadvice.com thread</a> for more info, including a version that does not use .NET features.<br>
<br>
RFC 2822 (and 822) do allow embedded comments, whitespace, and newlines within *some* parts of an email address, but this pattern above DOES NOT.<br>
<br>
RFC 2822 (and 822) allow the domain to be a simple domain with NO ".", but this pattern requires a compound domain at least one "." in the domain name, as per RFC 2821 (4.1.2).<br>
<br>
RFC 2822 allows/disallows certain whitespace characters in parts of an email address, such as TAB, CR, LF BUT the pattern above does NOT test for these, and assumes that they are not present in the string (on the basis that these characters are hard to enter into an edit box).

does not allow IP for domain name : hello@154.145.68.12
does not allow litteral addresses &quot;hello, how are you?&quot;@world.com
allows numeric domain names
after the last &quot;.&quot; minimum 2 letters

regex to validate email address
noteworthy:
(1) It allows usernames with 1 or 2 alphanum characters, or 3+ chars can have -._ in the middle. username may NOT start/end with -._ or any other non alphanumeric character.
(2) It allows heirarchical domain names (e.g. me@really.big.com). Similar -._ placement rules there.
(3) It allows 2-9 character alphabetic-only TLDs (that oughta cover museum and adnauseum :&gt;).
(4) No IP email addresses though -- I wouldn't Want to accept that kind of address.

A short and sweet email address validator. Checks that the username starts and ends with an alphanumeric character, allows a few non-repeating 'special characters' (namely -, ., _, +, &amp;) and checks for a sensible domain name (2-6 character TLD required). Some unconventional, yet technically valid, addresses will not be matched, but this is only a simple expression ;-)

Validates 1 or more email addresses. Email addresses can be delimited with either comma or semicolon. White space is allowed after delimiter, but not necessary. I needed this to allow my users to specify multiple email addresses if they choose to do so.

This Works good until we want a multiple email address validator, I am working on it to make it work with the multiple email address, If anyone can work on this part as to validate a multiple email address then that will produce a very good expression, i think the best of this kind. AIM - to Validate Mohit &lt;myadav@yahoo.com&gt;; Rohit &lt;ryadav@yahoo.com&gt;; .........(any number of times)

This expression matches email addresses, and checks that they are of the proper form. It checks to ensure the top level domain is between 2 and 4 characters long, but does not check the specific domain against a list (especially since there are so many of them now).

Simple email expression. Doesn't allow numbers in the domain name and doesn't allow for top level domains that are less than 2 or more than 3 letters (which is fine until they allow more). Doesn't handle multiple &quot;.&quot; in the domain (joe@abc.co.uk).

I use this expression to read bounced email addresses returned by the system administrator. The body of the subject should contain the email address somewhere but the location varies.
Examples:
To: blah.v.blah@blah-blah.net ||
blah-blah.blah@blah.com ||
&lt;blah@blah.org&gt;... Deferred: Connection timed out with mail.blah.org. ||
blah@blah.net 0n 25-12-2004 21:09

It verifies that: - Only letters, numbers and email acceptable symbols (+, _, -, .) are allowed - No two different symbols may follow each other - Cannot begin with a symbol - Ending domain must be at least 2 letters - Supports subdomains - TLD must be between 2 and 6 letters (Ex: .ca, .museum) - Only (-) and (.) symbols are allowed in domain, but not consecutively.
Problems:
See comments below

This pattern allows standard e-mail addresses (e.g. user@domain.com), sub domains (e.g. user@foo.domain.com), the new two- and four-letter domains (e.g. user@domain.tv and user@domain.name) and country codes (e.g. user@foo.com.us). Also, this patter follows the Network Solutions standard length of 67 characters for top-level domains. The reason I allow numbers to be entered in the domain suffix is for future planning. If you do not want numbers to be able to be added as a domain suffix (e.g. user@domain.123), simply delete the last two occurrences of &quot;\d&quot;.