Regex для проверки test@test.com.com.com
Как я могу проверить следующие неправильные адреса электронной почты с помощью регулярного выражения в C#?
например:
test@test.com.net.com
или же
test@test.net.net.org
Они проверяются как правильные адреса электронной почты. Какие-нибудь мысли? Спасибо
3 ответа
Хотя оба test@test.com.net.com
а также test@test.net.net.org
с синтаксической точки зрения действительны, их доменные части не указывают на существующие домены. Для этого вида теста вы можете извлечь часть домена, которая вас интересует, и запросить DNS (см. RFC 2821 и RFC 2822), чтобы узнать, существует ли она.
Поскольку вы используете.NET, кстати, я бы посоветовал вам взглянуть на нашу EmailVerify.NET, ведущую библиотеку для проверки электронной почты, которая может проверять синтаксис (в соответствии с последними стандартами IETF), доменные части и наличие почтового ящика для ваших адресов электронной почты.
Вы можете просто использовать что-то вроде:
[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
Список, пожалуйста, смотрите на этой странице.
Пожалуйста, рассмотрите это регулярное выражение:
([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})
Он будет соответствовать всем адресам электронной почты, если он не совпадает с адресом электронной почты, адрес электронной почты не в правильном формате, надеюсь, это поможет:)