Testeur de Regex
Construisez et déboguez des expressions régulières avec un retour immédiat
Qu'est-ce qu'une expression régulière ?
Une expression régulière, ou regex, est un petit langage de motifs
pour décrire du texte. \d{3} signifie « trois
chiffres », ^[A-Z] « commence par une majuscule », et
colou?r trouve à la fois « color » et « colour ». Les
regex servent à valider des saisies, fouiller des logs, extraire des
données et réécrire du texte dans presque tous les langages et
éditeurs.
Fonctionnalités Principales
- Surlignage en direct : Les correspondances sont marquées dans votre texte pendant la saisie
- Groupes : Chaque correspondance liste ses groupes numérotés ($1, $2) et nommés ($<nom>)
- Aperçu du remplacement : Voyez le résultat d'un remplacement, références de groupes comprises
- Tous les drapeaux JavaScript : g, i, m, s, u et y, chacun avec une info-bulle
- Protection contre les emballements : Un motif trop long à exécuter est arrêté au lieu de bloquer l'onglet
- Aide-mémoire : La syntaxe la plus utilisée, juste sous le testeur
- Mémorise votre travail : Motif, drapeaux et texte sont conservés au rechargement
Comment tester une regex
Étape 1 : Saisissez le motif
Tapez votre motif entre les barres obliques, sans les barres elles-mêmes. Cliquez sur « Sample » pour charger un exemple qui détecte des adresses e-mail avec des groupes nommés.
Étape 2 : Choisissez les drapeaux
Le drapeau g est activé par défaut pour voir toutes les
correspondances. Ajoutez i pour ignorer la casse,
m pour que ^ et $ agissent par
ligne, ou s pour que . accepte les retours à
la ligne. Les drapeaux choisis apparaissent après la barre finale.
Étape 3 : Ajoutez un texte de test
Collez le texte à analyser. Incluez des exemples qui doivent correspondre et d'autres qui ne le doivent pas, pour repérer à la fois les oublis et les faux positifs.
Étape 4 : Lisez les résultats
La ligne d'état donne le nombre de correspondances et de groupes. La vue surlignée montre où se trouve chaque correspondance, et la liste Matches indique sa position et la valeur de chaque groupe. Un groupe qui n'a pas participé à la correspondance est affiché « (no match) ».
Étape 5 : Essayez un remplacement
Tapez un texte de remplacement pour prévisualiser le résultat.
Utilisez $1 pour le premier groupe,
$<nom> pour un groupe nommé et $&
pour la correspondance entière. Sans le drapeau g, seule
la première correspondance est remplacée, exactement comme avec
String.replace en JavaScript.
Les drapeaux expliqués
- g (global) : Trouve toutes les correspondances, pas seulement la première
- i (ignore case) :
acorrespond aussi àA - m (multiline) :
^et$correspondent au début et à la fin de chaque ligne - s (dotAll) :
.accepte aussi les retours à la ligne - u (unicode) : Traite les emoji comme un seul caractère et active les classes du type
\p{L} - y (sticky) : Ne cherche qu'à la position courante exacte
Motifs utiles
- Mot entier :
\bmot\b - Chiffres uniquement :
^\d+$ - Date ISO :
\d{4}-\d{2}-\d{2} - Couleur hexadécimale :
#(?:[0-9a-fA-F]{3}){1,2}\b - Espaces en fin de ligne :
[ \t]+$avec le drapeau m - Mots répétés :
\b(\w+)\s+\1\b
Éviter le backtracking catastrophique
Certains motifs, comme (a+)+$, prennent un temps qui
explose avec la taille du texte, car le moteur essaie toutes les
façons de répartir le texte entre les quantificateurs imbriqués avant
d'abandonner. En production, cela peut bloquer un serveur. Le testeur
exécute votre motif en arrière-plan et l'arrête après 1,5 seconde,
pour détecter ces problèmes sans risque. Pour les corriger, supprimez
les quantificateurs imbriqués, rendez les alternatives exclusives et
préférez des classes de caractères précises à .*.
Conseils
- Construisez vos motifs pas à pas en vérifiant les correspondances à chaque modification
- Utilisez des groupes nommés :
$<annee>se lit mieux que$3 - Préférez les quantificateurs paresseux comme
.+?entre deux délimiteurs - Ancrez vos motifs de validation avec
^et$, sinon une saisie partielle passera
Confidentialité
Votre motif et votre texte sont traités dans votre navigateur et enregistrés uniquement dans son stockage local. Rien n'est envoyé.
Conclusion
Le surlignage en direct, le détail des groupes et l'aperçu des remplacements rendent les expressions régulières bien plus faciles à maîtriser. Essayez-le sur tools.typinks.com/regex-tester.