I'm sure someone is going to mark this as a duplicate, as a quick SO search for "email regex" turns up several results, as does a Google search. Some of your best bets are this thread and perhaps this one, and this article on regular-expressions.info. But, to quote an answer from the first thread:
This question is asked a lot, but I think you should step back and ask yourself why you want to validate email adresses syntactically? What is the benefit really?
- It will not catch common typos.
- It does not prevent people from entering invalid or made-up email addresses, or entering someone else's address.
If you want to validate that an email is correct, you have no choice than to send an confirmation email and have the user reply to that. In many cases you will have to send a confirmation mail anyway for security reasons or for ethical reasons (so you cannot e.g. sign someone up to a service against their will)