"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué falla la validación de correo electrónico de Java Regex a pesar de funcionar en Buscar y reemplazar de Eclipse?

¿Por qué falla la validación de correo electrónico de Java Regex a pesar de funcionar en Buscar y reemplazar de Eclipse?

Publicado el 2024-12-22
Navegar:368

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

Problema con la validación de correo electrónico Java Regex

Al intentar validar direcciones de correo electrónico utilizando una expresión regular, un usuario de Java encontró un problema en el que la validación falla incluso para direcciones de correo electrónico bien formadas. A pesar de que la expresión regular coincide con direcciones de correo electrónico cuando se usa en una función de "buscar y reemplazar" dentro de Eclipse, falla cuando se usa con las clases Pattern y Matcher de Java.

La expresión regular en cuestión es:

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

El usuario ha empleado esto código en 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!");

Sin embargo, independientemente de que la dirección de correo electrónico sea válida o no, la validación de expresiones regulares falla.

Una solución potencial

Una solución sugerida es utilizar el siguiente código Java, que emplea una expresión regular similar:

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

Se ha informado que este código valida direcciones de correo electrónico de manera confiable.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3