Testeur de regex en ligne
Écrivez un pattern, testez-le sur votre texte : les correspondances et leurs groupes capturés s'affichent en direct.
- #1Bonjourindex 0–7
- #2Marieindex 8–13
- #3Paulindex 21–25
- #4Claudeindex 29–35
Qu'est-ce qu'une expression régulière ?
Une expression régulière (ou « regex ») est un motif de texte qui décrit un ensemble de chaînes, afin de les rechercher, les valider ou en extraire des morceaux. Elle combine des caractères littéraux et des symboles spéciaux ayant chacun un sens précis. Ce testeur s'appuie directement sur le moteur de regex de votre navigateur : le comportement observé ici est celui que vous obtiendrez dans du code JavaScript avec les mêmes drapeaux.
Métacaractères et classes
.N'importe quel caractère, sauf un saut de ligne (sauf avec le drapeau s)^Début du texte, ou début de chaque ligne avec le drapeau m$Fin du texte, ou fin de chaque ligne avec le drapeau m\dUn chiffre — équivaut à [0-9]\wUne lettre latine non accentuée, un chiffre ou _ — équivaut à [A-Za-z0-9_]\sUne espace, une tabulation ou un saut de ligne\bUne frontière de mot (entre un \w et un non-\w)[abc]Un seul caractère parmi ceux listés ; [a-z] pour un intervalle[^abc]Un seul caractère qui n'est aucun de ceux listés|Alternative : chat|chien correspond à l'un ou l'autre\.La barre oblique inverse annule le sens spécial : ici, un point littéral Les versions majuscules inversent la classe : \D désigne tout sauf un chiffre, \S tout sauf une espace, \W tout sauf un caractère de mot. Attention à \w, qui exclut les lettres accentuées : pour du texte français, préférez une classe explicite comme [A-Za-zÀ-ÿ].
Quantificateurs et groupes
*0 fois ou plus+1 fois ou plus?0 ou 1 fois (élément optionnel){3}Exactement 3 fois{2,5}Entre 2 et 5 fois{2,}Au moins 2 fois, sans limite haute+?Version paresseuse : s'arrête à la plus courte correspondance possible Par défaut, un quantificateur est gourmand : il consomme le plus de texte possible. Ajouter ? derrière lui le rend paresseux, ce qui change tout sur du HTML ou du JSON, où <.+> avale toute la ligne alors que <.+?> s'arrête à la première balise. Les parenthèses créent un groupe de capture, restitué sous chaque correspondance dans le panneau de résultats ; (?:…) groupe sans capturer et (?<nom>…) nomme le groupe.
Motifs courants et leurs limites
| Cible | Motif | Ce qu'il ne fait pas |
|---|---|---|
| Adresse e-mail | [^\s@]+@[^\s@]+\.[A-Za-z]{2,} | Filtre pragmatique, pas une validation : il accepte des adresses syntaxiquement invalides et refuse des adresses exotiques mais légales. Le seul test fiable reste l'envoi d'un e-mail de confirmation. |
| URL http(s) | https?://[^\s"'<>]+ | Capture jusqu'au premier espace ou guillemet. La ponctuation finale d'une phrase (point, virgule) est incluse dans la correspondance si elle colle à l'URL. |
| Date jj/mm/aaaa | \b(0?[1-9]|[12]\d|3[01])/(0?[1-9]|1[0-2])/\d{4}\b | Vérifie la forme, pas l'existence de la date : 31/02/2026 correspond quand même. La validation du calendrier doit se faire dans le code. |
| Code postal français | \b\d{5}\b | Cinq chiffres isolés. Correspond aussi à 99999, qui n'est attribué à aucune commune : seule une base de données officielle permet de trancher. |
| Numéro de téléphone français | \b0[1-9](?:[ .-]?\d{2}){4}\b | Format national à 10 chiffres, avec espaces, points ou tirets facultatifs. Ne couvre ni la forme internationale +33, ni les numéros courts. |
| Couleur hexadécimale | #(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})\b | Notation courte et longue. N'inclut pas les variantes à 4 et 8 chiffres qui portent le canal alpha. |
Aucun de ces motifs n'est une validation métier. Une regex vérifie une forme ; elle ne sait pas si une adresse existe, si une date est valide ou si un code postal est attribué. Collez-les dans le champ ci-dessus pour les éprouver sur vos propres données avant de les intégrer à du code.
Non. Le pattern et le texte de test restent entièrement dans votre navigateur : l'évaluation de la regex se fait avec le moteur JavaScript natif, sans aucun appel réseau.
g (global) trouve toutes les correspondances au lieu de s'arrêter à la première. i ignore la casse. m fait que ^ et $ correspondent au début/fin de chaque ligne plutôt qu'au début/fin du texte entier. s (dotall) permet au point (.) de capturer aussi les sauts de ligne. Ce sont les quatre drapeaux proposés par l'outil ; les autres drapeaux JavaScript (u, y, d, v) ne sont pas activables ici.
Parce que le drapeau g est décoché. Sans g, le moteur JavaScript s'arrête à la première correspondance trouvée — l'outil reproduit fidèlement ce comportement plutôt que de le masquer. Cochez g pour lister toutes les occurrences.
Entourez la portion voulue de parenthèses : c'est un groupe de capture, restitué séparément sous chaque correspondance. (?:…) crée un groupe non capturant, utile pour appliquer un quantificateur sans polluer la liste des groupes, et (?<nom>…) donne un nom au groupe, plus lisible qu'un numéro dans le code.
Un message d'erreur clair s'affiche sous le champ pattern, expliquant la syntaxe incorrecte détectée par le moteur JavaScript. La page ne plante jamais : vous pouvez corriger le pattern et voir le résultat se mettre à jour immédiatement.
Le tronc commun (métacaractères, classes, quantificateurs, groupes) est identique et se transpose sans effort. Les différences apparaissent sur les points avancés : syntaxe des groupes nommés, lookbehind, drapeaux et gestion de l'Unicode. Vérifiez toujours un motif complexe dans le langage cible.