En primer lugar, sé que no se recomienda usar expresiones regulares para el correo electrónico, pero tengo que probarlo.
Tengo esta expresión regular:
\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b
En Java, hice esto:
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, la expresión regular falla independientemente de si el correo electrónico está bien formado o no. Un "buscar y reemplazar" dentro de Eclipse funciona bien con la misma expresión regular.
¿Alguna idea?
Gracias,
Respuestas:
FWIW, aquí está el código Java que usamos para validar direcciones de correo electrónico. Los Regexp son muy similares:
Funciona de forma bastante fiable.
fuente
Aquí está la expresión regular compatible con RFC822 adaptada para Java:
Salida:
La expresión regular se toma de esta publicación: Correo :: RFC822 :: Dirección: validación de dirección basada en expresiones regulares . Los resultados deben coincidir con la versión en línea .
fuente
email@email
como un correo electrónico válidoNo lo hagas. Nunca terminarás con una expresión válida.
Por ejemplo, estas son todas direcciones de correo electrónico válidas:
Solo por mencionar algunos problemas:
Antes incluso de comenzar, verifique las RFC correspondientes
fuente
Eso es porque estás olvidando la insensibilidad a mayúsculas y minúsculas:
Esto coincide con su ejemplo, aunque ignora muchos correos electrónicos válidos.
fuente
Otra alternativa simple para validar el 99% de los correos electrónicos
fuente
Esta es una expresión regular válida para validar correos electrónicos. Es totalmente compatible con RFC822 y acepta direcciones IP y nombres de servidor (para propósitos de intranet).
Aquí hay algunos ejemplos de salida, cuando llama
isEmailValid(emailVariable)
:fuente
¿Está el mecanizado configurado en CASE_INSENSITIVE ?
fuente
Puede utilizar este método para validar la dirección de correo electrónico en java.
fuente
Formato de correo electrónico general (RE) que incluye también dominios como co.in, co.uk, com, outlook.com, etc.
Y la regla dice que:
(punto, punto, punto) siempre que no sea el primer ni el último carácter, y siempre que no aparezca dos o más veces consecutivas.
fuente
Modificación de la respuesta de Armer B. que no validó los correos electrónicos que terminan con '.co.uk'
fuente
Regex:
^[\\w!#$%&’*+/=?
{|} ~ ^ -] + (?: \. [\ W! # $% & '* + / =?{|}~^-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$
fuente
Si quieres permitir personajes que no sean latain, este funciona bastante bien para mí.
No permite direcciones IP después de @, pero la mayoría de los correos electrónicos válidos en el origen de
[email protected]
pueden validarse con él.\p{L}
valida UTF-Letters y\p{N}
valida UTF-Numbers. Puede consultar este documento para obtener más información.fuente
Pruebe el siguiente código para el formato de correo electrónico
1ra parte
-jsmith
2da parte[email protected]
fuente
He probado esto a continuación
regular expression
para puntos consecutivos únicos y múltiples en eldomain
nombre:y aquí están los ejemplos que fueron completamente cumplidos por arriba
regex
.He intentado cubrir el máximo comúnmente utilizado
email id's validation
por este ilustrado anteriormenteregex
y, sin embargo, funciona ...Si aún sabe que algunos de los usados consecuentemente
email id's
quedaron aquí, ¡hágamelo saber en la sección de comentarios!fuente
Esta es la expresión regular para que coincida con direcciones de correo electrónico válidas.
fuente
puede usar una expresión regular simple para validar la identificación del correo electrónico,
Descripción:
fuente
Puede verificar si los correos electrónicos son válidos o no utilizando estas librerías y, por supuesto, puede agregar una matriz para este proyecto siguiente.
salida:
El correo es: verdadero
El correo es: falso
fuente
fuente
Gracias a la respuesta de @Jason Buberel, creo que las letras minúsculas deben ser validadas por RegEX. Entonces lo siguiente es correcto:
¡Ahora, tanto [email protected] como [email protected] son válidos!
Tenga en cuenta que \. debería ser \\. escapar . y tener \. sí mismo. Dado que ,. es un carácter significativo en Java RegEX significa todos los caracteres.
fuente
Pattern.CASE_INSENSITIVE
, por lo que no es necesarioa-z
Regex para validación similar a Facebook:
Dto para pruebas unitarias (con Lombok):
Correos electrónicos válidos / no válidos a continuación con pruebas unitarias:
}
fuente