Testeur de regex
Écrivez une expression régulière et voyez ce qu’elle trouve pendant la saisie – avec les groupes, l’aperçu du remplacement, une explication en clair de chaque élément et du code prêt à l’emploi.
- Recherche en direct
- Explique le motif
- Code pour 7 langages
- Fonctionne en local
Utilisez $1, $2… pour les groupes, $<nom> pour les groupes nommés et $& pour la correspondance entière.
Correspondances
Aucune correspondance
Le motif expliqué
Saisissez un motif pour voir le rôle de chaque partie.
Motifs courants
Cliquez sur un motif pour le charger avec un texte d’exemple. Adaptez-le à vos règles – les données réelles sont plus désordonnées que n’importe quel exemple.
L’utiliser dans votre code
L’extrait traduit les drapeaux et la syntaxe des groupes. Les moteurs diffèrent dans les détails – Go, par exemple, n’a ni assertions avant/arrière ni références arrière – testez donc aussi dans le langage cible.
Aide-mémoire
.N’importe quel caractère sauf un saut de ligne\dUn chiffre (0–9)\wUn caractère de mot (lettre, chiffre ou _)\sUn caractère d’espacement (espace, tabulation, saut de ligne)\D \W \SLe contraire : ni chiffre, ni caractère de mot, ni espacement[abc]L’un des caractères a, b ou c[^abc]N’importe quel caractère sauf a, b ou c[a-z]Un caractère compris entre a et z^Début du texte$Fin du texte\bUne limite de mota|bOu – soit la partie avant, soit la partie après(…)Groupe capturant(?:…)Groupe non capturant(?<name>…)Groupe capturant nommé\1Le même texte que celui trouvé par le groupe 1(?=…)Assertion avant – doit être suivi de …(?!…)Assertion avant négative – ne doit pas être suivi de …(?<=…)Assertion arrière – doit être précédé de …(?<!…)Assertion arrière négative – ne doit pas être précédé de …*Zéro fois ou plus+Une fois ou plus?Facultatif (zéro ou une fois){3}Exactement 3 fois{2,5}Entre 2 et 5 fois*? +?Paresseux : le moins possible\.Un point littéral (caractère spécial échappé)\p{L}Une lettre de n’importe quelle langue (nécessite le drapeau u)Comment tester une expression régulière
Le motif en haut, le texte en dessous.
- 1
Saisissez votre motif
Sans les barres obliques qui l’entourent ; activez ou désactivez les drapeaux nécessaires.
- 2
Ajoutez un texte de test
Collez de vrais exemples – des lignes qui doivent correspondre et d’autres qui ne le doivent pas. Les correspondances sont surlignées aussitôt.
- 3
Inspectez, remplacez, exportez
Examinez chaque correspondance et ses groupes, essayez un remplacement, puis copiez l’extrait de code pour votre langage.
Voyez ce que fait vraiment le motif
Moins de surprises en production.
Surlignage dans le texte
Les correspondances sont marquées directement dans votre texte ; cliquez sur l’une d’elles dans la liste pour y accéder.
Groupes détaillés
Chaque correspondance affiche ses groupes numérotés et nommés, y compris ceux qui n’ont pas participé.
Remplacer et découper
Aperçu d’un remplacement avec $1, $<nom> et $&, ou des morceaux produits par un découpage.
Expliqué en clair
Chaque élément du motif est décrit – quantificateurs, classes, groupes, assertions – pour lire aussi les regex des autres.
Copier en code
Le motif avec les bons échappements et drapeaux pour JavaScript, Python, PHP, Java, C#, Go ou Ruby.
Protégé contre les motifs emballés
La recherche s’exécute dans un fil d’arrière-plan. Un motif au retour arrière catastrophique est arrêté au bout d’un instant au lieu de figer la page.
Lien à partager
Copiez un lien qui ouvre l’outil avec le même contenu. Les données se trouvent après le # de l’adresse, une partie que les navigateurs n’envoient pas aux serveurs.
Confidentiel par conception
Tout fonctionne dans votre navigateur. Ce que vous saisissez ou ouvrez n’est pas envoyé à un serveur.
Les expressions régulières en cinq minutes
Une expression régulière décrit un motif de caractères. La plupart des caractères se représentent eux-mêmes ; quelques-uns ont un sens particulier. Les classes comme \d (un chiffre), \w (un caractère de mot) ou [a-f] correspondent à un caractère d’un ensemble. Les quantificateurs disent combien de fois : * zéro fois ou plus, + une fois ou plus, ? facultatif, {2,4} de deux à quatre fois. Les ancres ^, $ et \b correspondent à des positions, pas à des caractères.
Les parenthèses créent des groupes. Un groupe capturant mémorise ce qu’il a trouvé, pour le réutiliser dans un remplacement ($1) ou le lire dans le code ; (?<annee>\d{4}) donne un nom au groupe. Les quantificateurs sont gourmands par défaut – ils prennent le plus possible – et deviennent paresseux avec un ? final. Cette différence explique la plupart des problèmes de « ça correspond à trop de texte », par exemple <.+> face à <.+?>.
Ce testeur utilise le moteur JavaScript de votre navigateur : les résultats sont exacts pour JavaScript et TypeScript, et très proches pour les autres langages. Principales différences ailleurs : Python écrit les groupes nommés (?P<nom>…), le moteur RE2 de Go n’a ni assertions avant/arrière ni références arrière, et les drapeaux se passent différemment. Validez toujours les entrées sensibles – adresses e-mail, URL – avec un analyseur dédié plutôt qu’avec une seule regex.
Les drapeaux
| Drapeau | Nom | Effet |
|---|---|---|
| g | global | Trouve toutes les correspondances au lieu de s’arrêter à la première |
| i | ignore case | Majuscules et minuscules sont considérées comme égales |
| m | multiline | ^ et $ correspondent aussi au début et à la fin de chaque ligne |
| s | dot all | Le point correspond aussi aux sauts de ligne |
| u | unicode | Traite le texte en points de code Unicode et active \p{…} |
| y | sticky | Ne correspond qu’à la position exacte où la précédente correspondance s’est terminée |
Conseils
- Mettez en forme le code autour de votre motif avec le Formateur de code.
- Vous cherchez dans du JSON ? Rendez d’abord la structure lisible avec le Formateur JSON.
- Décodez un texte encodé en pour-cent avant de le tester, avec l’encodeur-décodeur d’URL.
- Évitez les quantificateurs imbriqués tels que
(a+)+ou(.*)*sur des entrées utilisateur : ils peuvent prendre un temps exponentiel (ReDoS). Rendez plutôt la partie interne sans ambiguïté.
Questions fréquentes
Vous ne trouvez pas votre réponse ? Contactez-nous — nous répondons rapidement.
Quelle variante de regex ce testeur utilise-t-il ?
Le moteur JavaScript (ECMAScript) intégré à votre navigateur, avec les assertions arrière, les groupes nommés et les propriétés Unicode. Les motifs se comportent de façon identique en JavaScript, TypeScript et Node.js.
Pourquoi mon motif ne trouve-t-il que la première correspondance ?
Sans le drapeau g (global), une expression régulière s’arrête après la première correspondance. Activez g pour toutes les trouver.
Quelle différence entre gourmand et paresseux ?
Un quantificateur gourmand (.*) prend le plus de texte possible puis en rend si nécessaire ; un paresseux (.*?) en prend le moins possible. Entre deux délimiteurs, c’est en général le paresseux qu’il vous faut.
Que signifie « retour arrière catastrophique » ?
Certains motifs peuvent essayer un nombre exponentiel de façons de faire correspondre un texte, typiquement avec des quantificateurs imbriqués comme (a+)+$. Le testeur interrompt une telle exécution au bout d’environ deux secondes et vous le signale.
Puis-je utiliser le motif en Python ou en PHP ?
En général oui. La section de code convertit les drapeaux, les échappements et la syntaxe des groupes nommés pour Python, PHP, Java, C#, Go et Ruby. Testez le résultat dans le langage cible, car les moteurs diffèrent dans les détails.
Mes données sont-elles envoyées à un serveur ?
Non. L’outil fonctionne entièrement dans votre navigateur. Votre saisie n’est ni envoyée, ni journalisée, ni stockée sur nos serveurs.
Plus d’outils gratuits pour développeurs
Encoder, formater, tester, convertir et générer – de petits outils qui fonctionnent dans votre navigateur et laissent vos données sur votre appareil.