Tout d'abord, je sais que l'utilisation de regex pour le courrier électronique n'est pas recommandée, mais je dois tester cela.
J'ai ce regex:
\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b
En Java, j'ai fait ceci:
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!");
Cependant, l'expression régulière échoue, que l'e-mail soit bien formé ou non. Un "rechercher et remplacer" dans Eclipse fonctionne très bien avec le même regex.
Une idée?
Merci,
Réponses:
FWIW, voici le code Java que nous utilisons pour valider les adresses email. Les Regexp sont très similaires:
Fonctionne de manière assez fiable.
la source
Voici une expression régulière conforme à la RFC822 adaptée pour Java:
Production:
L'expression régulière est tirée de ce billet: Mail :: RFC822 :: Address: validation d'adresse basée sur les expressions régulières . Les résultats doivent coïncider avec la version en ligne .
la source
email@email
comme eNe fais pas ça.Vous ne vous retrouverez jamais avec une expression valide.
Par exemple, ce sont toutes des adresses e-mail valides:
Juste pour mentionner quelques problèmes:
Avant même de commencer, vérifiez les RFC correspondants
la source
C'est parce que vous oubliez l'insensibilité à la casse:
Cela correspond à votre exemple, bien qu'il ignore de nombreux e-mails valides.
la source
Une autre alternative simple pour valider 99% des e-mails
la source
Ceci est une expression régulière valide pour valider les e-mails. Il est totalement conforme à la RFC822 et accepte les adresses IP et les noms de serveurs (à des fins intranet).
Voici quelques exemples de sortie, lorsque vous appelez
isEmailValid(emailVariable)
:la source
L'usinage est-il réglé sur CASE_INSENSITIVE ?
la source
Vous pouvez utiliser cette méthode pour valider l'adresse e-mail en java.
la source
Format de courrier électronique général (RE) qui comprend également des domaines tels que co.in, co.uk, com, outlook.com, etc.
Et la règle dit que:
(point, point, point) à condition que ce ne soit pas le premier ou le dernier caractère, et à condition également qu'il n'apparaisse pas deux ou plusieurs fois consécutivement.
la source
Modification de la réponse Armer B. qui n'a pas validé les emails se terminant par '.co.uk'
la source
Regex:
^[\\w!#$%&’*+/=?
{|} ~ ^ -] + (?: \. [\ W! # $% & '* + / =?{|}~^-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,6}$
la source
Si vous souhaitez autoriser les caractères non latins, celui-ci fonctionne très bien pour moi.
Il n'autorise pas les adresses IP après le @, mais les e-mails les plus valides du de
[email protected]
peuvent être validés avec.\p{L}
valide les lettres UTF et\p{N}
valide les numéros UTF. Vous pouvez consulter ce document pour plus d'informations.la source
Essayez le code ci-dessous pour que l'e-mail soit au format
1ère partie
-jsmith
2ème partie[email protected]
la source
J'ai testé ceci ci-dessous
regular expression
pour des points consécutifs simples et multiples dans ledomain
nom -et voici les exemples qui ont été complètement remplis par ci-dessus
regex
.J'ai essayé de couvrir le maximum couramment utilisé
email id's validation
par ce ci-dessus illustréregex
et pourtant fonctionnel ...Si vous savez toujours que certains utilisés de manière conséquente
email id's
sont restés ici, veuillez me le faire savoir dans la section commentaires!la source
Il s'agit de l'expression régulière correspondant aux adresses e-mail valides.
la source
vous pouvez utiliser une expression régulière simple pour valider l'ID de messagerie,
La description :
la source
Vous pouvez vérifier si les e-mails sont valides ou non en utilisant ces bibliothèques, et bien sûr, vous pouvez ajouter un tableau pour ce projet suivant.
production :
Le courrier est: vrai
Le courrier est: faux
la source
la source
Grâce à la réponse de @Jason Buberel, je pense que les lettres minuscules doivent être validées par le RegEX. Donc, ce qui suit est correct:
Maintenant, [email protected] et [email protected] sont valides!
Notez que \. devrait être \\. pour échapper à . et avoir \. lui-même. Depuis ,. est un caractère significatif dans java RegEX signifie tous les caractères.
la source
Pattern.CASE_INSENSITIVE
, donc pas besoin dea-z
Regex pour la validation de type Facebook:
Dto pour les tests unitaires (avec Lombok):
E-mails valides / invalides ci-dessous avec des tests unitaires:
}
la source