What is the best regular expression for validating email addresses?

Posted by acrosman on Stack Overflow See other posts from Stack Overflow or by acrosman
Published on 2008-10-14T14:14:34Z Indexed on 2010/04/30 16:37 UTC
Read the original article Hit count: 172

Filed under:
|
|

Over the years I have slowly developed a regular expression that validates MOST email addresses correctly, assuming they don't use an IP address as the server part. Currently the expression is:

^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$

I use this in several PHP programs, and it works most of the time. However, from time to time I get contacted by someone that is having trouble with a site that uses it, and I end up having to make some adjustment (most recently I realized that I wasn't allowing 4-character TLDs).

What's the best regular expression you have or have seen for validating emails?

I've seen several solutions that use functions that use several shorter expressions, but I'd rather have one long complex expression in a simple function instead of several short expression in a more complex function.

© Stack Overflow or respective owner

Related posts about email

Related posts about validation