La syntaxe regex en un seul tableau, plus 30 motifs prêts à l'emploi pour e-mail, URL, téléphone, code postal, mot de passe, dates et plus encore. Chacun est testé en direct sur des exemples valides et invalides que vous pouvez modifier.
Une expression régulière est un motif qui sert à reconnaître du texte. \d correspond à un chiffre, \w à un caractère de mot, + signifie un ou plusieurs, ? rend un élément facultatif, et ^ et $ ancrent la correspondance au début et à la fin. Vous trouverez ci-dessous la syntaxe complète et 30 motifs testés, chacun vérifié en direct sur des chaînes qui doivent correspondre et d'autres qui ne doivent pas.
Six symboles qui couvrent la plupart des motifs
Copiez un motif, puis testez votre propre texte dans le champ à côté. Chaque motif de cette page est fourni avec des exemples qui doivent correspondre et d'autres qui ne doivent pas, et la page les exécute dans votre navigateur pour que vous voyiez chaque résultat.
Une regex pratique est ^[^\s@]+@[^\s@.]+(\.[^\s@.]+)+$ : du texte, un @, et un domaine avec au moins un point. Elle détecte les fautes de frappe sans rejeter des adresses inhabituelles mais valides. Aucune regex ne peut dire si une adresse existe vraiment, envoyez donc un e-mail de confirmation.
Supprimez les espaces, tirets et parenthèses, puis vérifiez le format E.164 : ^\+[1-9]\d{6,14}$. Pour les numéros américains et canadiens saisis avec des séparateurs, utilisez le motif nord-américain de cette page. Pour une vérification complète par pays, une bibliothèque de numéros de téléphone est plus fiable.
En dehors des crochets, ^ ancre la correspondance au début du texte, ou de chaque ligne avec le flag m. À l'intérieur des crochets, en premier caractère, comme dans [^0-9], il signifie aucun de ces caractères.
Les variantes diffèrent dans les détails : Python écrit les groupes nommés (?P<name>...), ne prend pas en charge \p{L} dans son module re intégré, et n'autorise que les lookbehind de longueur fixe. Consultez le tableau des langages de cette page pour les différences courantes.
Les quantificateurs greedy comme * et + prennent autant de texte que possible puis reculent. Ajouter ? les rend lazy, ils prennent alors le moins possible. Sur <b>x</b><b>y</b>, <.+> correspond à tout, tandis que <.+?> correspond seulement à <b>.
Référence de la syntaxe regex (variante JavaScript)
Flags JavaScript
Les mêmes idées en JavaScript, Python et PHP
Du texte, un @, puis un domaine avec au moins un point. Pas d'espaces.
Aucune regex ne vérifie complètement une adresse e-mail. Envoyez un e-mail de confirmation pour savoir si elle est réelle.
http ou https, un hôte avec au moins un point, un port facultatif, puis n'importe quel chemin, requête ou fragment sans espaces.
En JavaScript, new URL(value) dans un bloc try est la vérification la plus stricte.
Des libellés composés de lettres, de chiffres et de tirets internes, séparés par des points, se terminant par un domaine de premier niveau composé uniquement de lettres.
Des lettres minuscules et des chiffres en groupes reliés par des tirets simples.
Un signe plus, un indicatif pays qui ne commence pas par 0, et de 7 à 15 chiffres au total, sans espaces.
Supprimez d'abord les espaces, tirets et parenthèses. Pour une vraie validation par pays, utilisez une bibliothèque de téléphonie.
+1 facultatif, un indicatif régional et un central à 3 chiffres qui ne commencent pas par 0 ou 1, puis 4 chiffres, avec les séparateurs courants.
Cinq chiffres, éventuellement suivis d'un tiret et de quatre autres (ZIP+4).
Une ou deux lettres, un chiffre, une lettre ou un chiffre facultatif, un espace facultatif, puis un chiffre et deux lettres.
Ne vérifie que la forme. Il accepte certains codes qui n'existent pas.
Lettre, chiffre, lettre, espace facultatif, chiffre, lettre, chiffre. Les lettres D, F, I, O, Q et U ne sont jamais utilisées, et W et Z ne viennent jamais en premier.
Un # puis 3, 4, 6 ou 8 chiffres hexadécimaux (les formes à 4 et 8 incluent la transparence).
Au moins 12 caractères, avec une minuscule, une majuscule, un chiffre et un symbole, vérifiés par des lookaheads.
La longueur compte plus que la variété. Beaucoup d'équipes n'exigent désormais qu'une longueur minimale et vérifient les listes de mots de passe compromis.
De 3 à 20 caractères, lettres et chiffres ; points et tirets bas autorisés uniquement entre eux, jamais doublés.
Quatre nombres de 0 à 255 séparés par des points, sans zéros en tête.
Année à quatre chiffres, mois de 01 à 12, jour de 01 à 31.
Il accepte 2026-02-31. Analysez ensuite la date pour rejeter les jours qui n'existent pas.
Heures de 00 à 23, deux-points, minutes de 00 à 59.
Heures de 1 à 12, minutes, puis am ou pm avec points et espace facultatifs.
Signe moins facultatif, puis 0 ou un nombre sans zéros en tête.
Un nombre entier avec un point facultatif et au moins un chiffre après.
Signe dollar facultatif, chiffres avec des groupes de virgules corrects (ou aucun), centimes à deux chiffres facultatifs.
Un nombre de 0 à 100 avec décimales facultatives, suivi de %.
De 13 à 19 chiffres, éventuellement groupés avec des espaces ou des tirets.
Forme uniquement. Utilisez l'algorithme de Luhn et votre prestataire de paiement pour valider une carte.
MAJOR.MINOR.PATCH sans zéros en tête, avec des parties -prerelease et +build facultatives.
Des chiffres hexadécimaux 8-4-4-4-12 avec un chiffre de version de 1 à 8 et la variante standard.
Une balise ouvrante, du texte sans autres balises, et la balise fermante correspondante (la référence arrière \1 répète le nom).
N'analysez pas du HTML complet avec une regex. Utilisez DOMParser ou un analyseur HTML.
Rien d'autre que des espaces, tabulations ou sauts de ligne. Utile pour rejeter les champs de formulaire vides.
Un # suivi de lettres (dans n'importe quelle écriture), de chiffres ou de tirets bas. Nécessite le flag u pour \p{L}.
Les formes courantes watch, embed, shorts et lien court. Le groupe 1 capture l'identifiant de vidéo de 11 caractères.
Un nom de fichier sans caractères interdits dans les chemins, se terminant par une extension d'image courante.
Un @ et de 1 à 15 lettres, chiffres ou tirets bas, la règle qu'utilise X (anciennement Twitter).
Trouve un mot tapé deux fois de suite, comme 'le le'. Non ancré, il cherche donc à l'intérieur du texte.
(vide)
ne correspond pas
Copier
Doit correspondre
Ne doit pas correspondre
Testez votre propre valeur
Correspond
Aucune correspondance
Testeur rapide
Motif
Flags
Texte
Aucune correspondance.
à {n} :
groupes :
Syntaxe
Flags
{n} motifs testés
Filtrer
e-mail, date, téléphone…
Aucun motif ne correspond à ce filtre.
JavaScript, Python et PHP
Sorti en 2026-10, corrigé en 2026-11, prévu pour 2027-02.
Commencer gratuitement · Sans carte bancaire