Comment ça marche
- Saisissez votre motif et les drapeaux.
- Collez le texte à tester.
- Examinez les correspondances, les groupes et l’explication.
Pourquoi l’utiliser
- Surbrillance des correspondances en direct.
- Groupes capturants et groupes nommés.
- Aperçu du remplacement.
- Délai de garde contre le rétro-parcours catastrophique.
Tester des expressions régulières : drapeaux, groupes et motifs sûrs
Écrire, tester et comprendre
Tapez un motif et un texte de test, et chaque correspondance est surlignée pendant la frappe, avec une liste des correspondances et le texte capturé par chaque groupe. L’onglet Expliquer décompose le motif en ses parties en mots simples, le moyen le plus rapide de comprendre un motif copié ailleurs. Des exemples pour les besoins courants, comme les adresses e-mail, les URL, les adresses IPv4, les dates ISO, les couleurs hexadécimales, les UUID et les numéros de téléphone, donnent un point de départ.
Les drapeaux
| Drapeau | Nom | Effet |
|---|---|---|
g | global | Trouve toutes les correspondances, pas seulement la première |
i | ignore case | A et a sont identiques |
m | multiline | ^ et $ correspondent au début et à la fin de chaque ligne |
s | dot all | . correspond aussi aux sauts de ligne |
u | unicode | Traite les emoji et autres caractères comme un seul ; active \p{L} et ses cousins |
v | unicode sets | Comme u, plus des opérations d’ensemble dans les classes |
y | sticky | Ne correspond qu’exactement là où la dernière correspondance s’est arrêtée |
Pour du texte dans d’autres langues, utilisez u avec les propriétés Unicode : \p{L}+ correspond à un mot dans n’importe quel alphabet, là où [a-zA-Z]+ s’arrêterait au premier accent.
Groupes et remplacements
Les parenthèses capturent des parties d’une correspondance. Nommez-les avec (?<year>\d{4}) et faites-y référence dans un remplacement avec $<year> ; les groupes numérotés sont $1, $2 et ainsi de suite, la correspondance entière est $&, et un signe dollar littéral s’écrit $$. L’onglet Remplacer montre le résultat sur votre texte de test, ce qui permet d’essayer sans risque un rechercher-remplacer avant de le lancer sur de vrais fichiers. Par exemple, (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) avec $<day>/$<month>/$<year> transforme 2026-10-12 en 12/10/2026.
Les motifs qui figent tout
Certains motifs prennent un temps qui croît de façon exponentielle avec le texte, un problème appelé retour arrière catastrophique. (a+)+$ sur une longue ligne de a suivie d’une autre lettre est le cas d’école : chaque lettre en plus double le travail. Sur un serveur, un tel motif peut servir à le bloquer avec une seule entrée bien choisie. Le testeur exécute les motifs dans un processus en arrière-plan et arrête ceux qui tournent plus de 1,5 seconde, en vous prévenant au lieu de figer l’onglet. Si cela arrive, cherchez une répétition imbriquée comme (x+)+ ou (x*)* et réécrivez-la.
Les moteurs diffèrent
C’est le moteur JavaScript de votre navigateur. L’essentiel de la syntaxe est commun avec Python, Java, PHP et .NET, mais pas tout : l’assertion arrière, les quantificateurs possessifs, la syntaxe des groupes nommés et les classes Unicode varient de l’un à l’autre. Testez dans le langage que vous utiliserez avant de vous fier à un motif en production.
En cas de problème
- Le motif affiche une erreur. Un crochet ou une parenthèse n’est pas fermé, ou un caractère spécial demande une barre oblique inverse, comme
\.pour un point littéral. - Seule la première correspondance est trouvée. Activez le drapeau g.
- `^` et `$` ne correspondent qu’une fois. Activez le drapeau m pour correspondre à chaque ligne.
Questions et réponses
Quelle variante de regex est utilisée ?
JavaScript, tel qu’implémenté par votre navigateur.
Que se passe-t-il si mon motif se fige ?
La recherche s’exécute dans un worker avec une limite de 1,5 seconde : la page reste réactive et vous recevez un avertissement.
Mon texte est-il envoyé ?
Non.