Logo Wand.Tools

Générateur d'expressions régulières

Générez et expliquez intelligemment les expressions régulières, prend en charge divers modèles de correspondance courants

Correspondance d'adresses e-mail par expressions régulières - Tutoriel Complet

  # Correspondance d'adresses e-mail par expressions régulières - Tutoriel Complet
  
  ## Correspondance d'e-mail de base
  
  Le regex le plus simple pour la correspondance d'e-mail :
  ```regex
  \S+@\S+\.\S+

Exemples de correspondance :

Correspondance de formats d’e-mail courants

Regex de format d’e-mail standard :

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

Caractéristiques :

  • Permet les lettres majuscules et minuscules, les chiffres
  • Prend en charge les caractères spéciaux comme . _ % + -
  • La partie du domaine doit avoir au moins 2 caractères

Validation d’e-mail stricte

Regex standard RFC 5322 :

^(?:[a-z0-9!#$%&'*+/=?^_\{|\}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_\{|\}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$

Support des e-mails internationaux

Regex prenant en charge les caractères Unicode :

^[^\s@]+@[^\s@]+\.[^\s@]+$

Ou une version plus précise :

^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$

Décomposition d’une expression régulière

En prenant le regex d’e-mail standard comme exemple :

^                         # Début de la chaîne
[a-zA-Z0-9._%+-]+        # Partie du nom d'utilisateur
@                         # Symbole @
[a-zA-Z0-9.-]+           # Partie du domaine
\.                        # Point
[a-zA-Z]{2,}             # Domaine de premier niveau
$                         # Fin de la chaîne

Exemples d’implémentation dans divers langages

JavaScript

const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;

Python

import re
email_regex = re.compile(r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$')

PHP

$emailRegex = '/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/';

Java

Pattern emailPattern = Pattern.compile("^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$");

Questions Fréquemment Posées

1. Comment faire correspondre des adresses e-mail avec des adresses IP ?

^[a-z0-9._%+-]+@([0-9]{1,3}\.){3}[0-9]{1,3}$

2. Comment faire correspondre des adresses e-mail avec des numéros de port ?

^[a-z0-9._%+-]+@[a-z0-9.-]+:\d+$

3. Comment exclure les adresses e-mail de domaines spécifiques ?

^(?!.*@(spamdomain|blocked)\.com$)[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$

Optimisation des performances

  1. Utilisez des groupes non-capturants (?:) au lieu de groupes capturants ().
  2. Évitez les structures imbriquées trop complexes.
  3. Effectuez d’abord une validation de base sur le frontend web.
  4. Pré-compilez les expressions régulières pour les cas d’utilisation à haute fréquence.
^(?=[a-z0-9@.!#$%&'*+/=?^_\{|\}~-]{6,254}$)[a-z0-9._%+-]{1,64}@(?:[a-z0-9-]{1,63}\.){1,8}[a-z]{2,63}$