"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que minha validação de e-mail Java Regex falha apesar de trabalhar no Find and Replace do Eclipse?

Por que minha validação de e-mail Java Regex falha apesar de trabalhar no Find and Replace do Eclipse?

Publicado em 2024-12-22
Navegar:789

Why Does My Java Regex Email Validation Fail Despite Working in Eclipse's Find and Replace?

Problemas com validação de e-mail Java Regex

Ao tentar validar endereços de e-mail usando uma expressão regular, um usuário Java encontrou um problema em que o a validação falha mesmo para endereços de e-mail bem formados. Apesar do fato de que a regex corresponde aos endereços de e-mail quando usada em uma função "localizar e substituir" no Eclipse, ela falha quando usada com as classes Pattern e Matcher do Java.

A regex em questão é:

\b[A-Z0-9._%-] @[A-Z0-9.-] \.[A-Z]{2,4}\b

O usuário empregou este código em 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!");

No entanto, independentemente do endereço de e-mail ser válido ou inválido, a validação de regex falha.

Uma solução potencial

Uma solução sugerida é utilizar o seguinte código Java, que emprega um regex semelhante:

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();
}

Este código foi relatado para validar endereços de e-mail de forma confiável.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3