Posted on June 08, 2008.
This is a very common situation. You're taking input from the user, including their email address. You want to make sure that they're not feeding you a load of crap, so you want to validate their email address. The best way to do this is with a regular expression, but it's not a simple task.
Cal Henderson (of Flickr fame) wrote an excellent article a little while ago where he wrote a regular expression against the specification document that defines these things. As Cal points out, that specification is RFC822. Now this potentially has its problems because it was written in 1982 and the rules regarding valid characters in domain names have changed since then, but as far as I can tell his solution has then covered.