Не используйте рег-экс.
Очевидно следующее - это reg-ex, который корректно проверяет большинство адресов электронной почты, которые соответствуют RFC 2822 , (и все равно не работает на таких вещах, как "user@gmail.com.nospam", так как will org.apache.commons.validator.routines.EmailValidator)
(?:[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])+)\])
Возможно, самый простой способ проверить электронную почту - просто отправить электронное письмо с подтверждением по указанному адресу, и оно отскочит, тогда оно недействительно.
Если вы хотите выполнить некоторые базовые проверки, вы можете просто проверить, что это в форме *@*
Если у вас есть некоторая валидация, специфичная для бизнес-логики, вы можете выполнить это с помощью регулярного выражения, например, должна быть учетная запись gmail.com или что-то в этом роде.