Проблема с проверкой электронной почты Java Regex
При попытке проверить адреса электронной почты с помощью регулярного выражения пользователь Java столкнулся с проблемой, при которой проверка не удалась даже для правильно сформированных адресов электронной почты. Несмотря на то, что регулярное выражение соответствует адресам электронной почты при использовании в функции «найти и заменить» в Eclipse, оно не работает при использовании с классами Java Pattern и Matcher.
Рассматриваемое регулярное выражение:
\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("[email protected]"); if (m.find()) System.out.println("Correct!");
Однако независимо от того, действителен или недействителен адрес электронной почты, проверка регулярного выражения завершается неудачей.
Потенциальное решение
Предлагаемое решение — использовать следующий код Java, в котором используется аналогичное регулярное выражение:
public static final Pattern VALID_EMAIL_ADDRESS_REGEX = Pattern.compile("^}[A-Z0-9._% -] @[A-Z0-9.-] \\.[A-Z]{2,6}$", Pattern.CASE_INSENSITIVE); public static boolean validate(String emailStr) { Matcher matcher = VALID_EMAIL_ADDRESS_REGEX.matcher(emailStr); return matcher.matches(); }
Сообщается, что этот код надежно проверяет адреса электронной почты.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3