Maison > Java > javaDidacticiel > Pourquoi la validation de mon courrier électronique Java Regex échoue-t-elle, même si elle fonctionne dans Eclipse ?

Pourquoi la validation de mon courrier électronique Java Regex échoue-t-elle, même si elle fonctionne dans Eclipse ?

DDD
Libérer: 2024-12-03 04:55:13
original
169 Les gens l'ont consulté

Why Is My Java Regex Email Validation Failing, Even Though It Works in Eclipse?

Validation des e-mails Java Regex : pourquoi mon regex échoue-t-elle ?

Vous rencontrez un problème particulier où votre regex Java pour la validation des e-mails échoue systématiquement , bien qu'il fonctionne correctement dans Eclipse. Ce comportement peut être déroutant et nous allons explorer la solution.

L'expression régulière fournie est similaire aux modèles de validation d'e-mail couramment utilisés, dans lesquels vous essayez de faire correspondre la structure suivante : caractères alphanumériques majuscules, traits de soulignement, points ou traits d'union suivis d'un symbole "@", suivis de caractères alphanumériques, de points ou de traits d'union, et se terminant par un composant de domaine composé de 2 à 4 majuscules lettres.

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!");
Copier après la connexion

Cependant, cette expression régulière semble échouer, potentiellement en raison de caractères spéciaux dans la chaîne de courrier électronique qui sont déguisés ou échappés.

Une solution utilisant une expression régulière plus complète.

Pour résoudre ce problème, nous pouvons utiliser une expression régulière plus robuste pour le courrier électronique validation :

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();
}
Copier après la connexion

Cette expression régulière mise à jour adhère à la structure de courrier électronique spécifiée, mais gère en outre les caractères spéciaux plus efficacement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal