Прежде всего, я знаю, что использовать регулярное выражение для электронной почты не рекомендуется, но я должен это проверить.
У меня есть это регулярное выражение:
\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b
В Java я сделал так:
Pattern p = Pattern.compile("\\b[A-Z0-9._%-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b");
Matcher m = p.matcher("foobar@gmail.com");
if (m.find())
System.out.println("Correct!");
Однако регулярное выражение не работает независимо от того, правильно ли сформировано электронное письмо или нет. «Найти и заменить» внутри Eclipse отлично работает с тем же регулярным выражением.
Любая идея?
Спасибо,
Ответы:
FWIW, вот код Java, который мы используем для проверки адресов электронной почты. Regexp очень похожи:
Работает достаточно надежно.
источник
Вот регулярное выражение, совместимое с RFC822, адаптированное для Java:
Вывод:
Регулярное выражение взято из этого сообщения: Mail :: RFC822 :: Address: проверка адреса на основе регулярного выражения . Результаты должны совпадать с онлайн-версией .
источник
email@email
как действительный адрес электронной почтыНе. Вы никогда не получите правильного выражения.
Например, это все действующие адреса электронной почты:
Просто упомяну несколько проблем:
Прежде чем начать, проверьте соответствующие RFC
источник
Это потому, что вы забываете о нечувствительности к регистру:
Это соответствует вашему примеру, хотя игнорирует многие действительные электронные письма.
источник
Еще одна простая альтернатива для проверки 99% писем
источник
Это действительное регулярное выражение для проверки электронной почты. Он полностью соответствует RFC822 и принимает IP-адреса и имена серверов (для целей интрасети).
Вот несколько примеров вывода, когда вы звоните
isEmailValid(emailVariable)
:источник
Для обработки задано значение CASE_INSENSITIVE ?
источник
Вы можете использовать этот метод для проверки адреса электронной почты в java.
источник
Общий формат электронной почты (RE), который также включает такие домены, как co.in, co.uk, com, outlook.com и т. Д.
И правило говорит, что:
(точка, точка, точка) при условии, что это не первый и не последний символ, а также при условии, что он не появляется два или более раз подряд.
источник
Модификация ответа Армера Б., которая не проверяла электронные письма, заканчивающиеся на ".co.uk"
источник
Регулярное выражение:
^[\\w!#$%&’*+/=?
{|} ~ ^ -] + (?: \. [\ W! # $% & '* + / =?{|}~^-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$
источник
Если вы хотите разрешить использование нелатинских персонажей, этот вариант мне подходит.
Он не позволяет использовать IP-адреса после @, но
xxx@xxx.TDL
с его помощью можно проверить большинство действительных адресов электронной почты в от или .\p{L}
проверяет UTF-буквы и\p{N}
проверяет UTF-номера. Вы можете проверить этот документ для получения дополнительной информации.источник
Попробуйте приведенный ниже код для электронной почты в формате
1 часть
-jsmith
2 часть-@example.com
источник
Я тестировал это ниже
regular expression
для одной и нескольких последовательных точек вdomain
имени -и вот примеры, которые полностью исполнились выше
regex
.Я попытался охватить максимум, который обычно используется
email id's validation
в этом проиллюстрированном вышеregex
но все же работает ...Если вы все еще знаете,
email id's
что здесь осталось несколько последовательно используемых , пожалуйста, дайте мне знать в разделе комментариев!источник
Это регулярное выражение для сопоставления действительных адресов электронной почты.
источник
вы можете использовать простое регулярное выражение для проверки идентификатора электронной почты,
Описание :
источник
Вы можете проверить, действительны ли электронные письма или нет, используя эту библиотеку, и, конечно же, вы можете добавить массив для этого следующего проекта.
вывод :
Почта: правда
Почта: ложь
источник
источник
Благодаря ответу @Jason Buberel, я думаю, что строчные буквы должны быть проверены RegEX. Итак, верно следующее:
Теперь действительны и developer961@mail.com, и DEV961@yahoo.COM !
Обратите внимание, что \. должно быть \\. Сбежать . и есть \. сам. Поскольку ,. является значимым символом в java. RegEX означает все символы.
источник
Pattern.CASE_INSENSITIVE
, поэтому в этом нет необходимостиa-z
Regex для проверки, подобной Facebook:
Dto для модульных тестов (с Lombok):
Ниже приведены действительные / недействительные электронные письма с модульными тестами:
}
источник