Ce que fait un testeur regex
Une expression régulière, ou regex, est un petit langage de motifs pour trouver du texte. \d{4} veut dire « quatre chiffres à la suite ». [\w.+-]+@ veut dire « un ou plusieurs caractères de mot, points, signes plus ou traits d’union, suivis d’un @ ». Les regex servent au rechercher-remplacer dans les éditeurs de code, à la validation de formulaires, à l’analyse de journaux et au nettoyage de données.
Il est facile de se tromper légèrement dans un motif. Un testeur regex vous permet d’essayer un motif sur un vrai texte d’exemple et de voir exactement ce qu’il attrape avant de le mettre dans un script. Celui-ci affiche les correspondances pendant la frappe, liste chaque groupe de capture et prévisualise un remplacement.
Comment utiliser le testeur regex
- Tapez votre motif dans Expression régulière. Omettez les barres obliques. L’outil les affiche pour vous, avec les drapeaux actifs après la barre fermante.
- Activez ou désactivez les drapeaux avec les boutons g, i, m, s, u et y.
- Collez ou tapez un texte d’exemple dans Texte de test.
- Lisez le résultat dans Correspondances. Chaque correspondance est surlignée et le compteur indique combien ont été trouvées.
- Consultez Détail des correspondances et groupes pour la position de chaque correspondance et le texte attrapé par chaque groupe.
- Pour tester un rechercher-remplacer, tapez dans Remplacer par. Le texte modifié apparaît dans Résultat, prêt à copier.
Vous ne savez pas par où commencer ? Choisissez une entrée dans Motifs courants. Il y a des motifs pour les adresses e-mail, les adresses web, les dates, les adresses IPv4, les couleurs hexadécimales, les numéros de téléphone, les nombres et les doubles espaces.
Les drapeaux
| Drapeau | Nom | Ce qu’il change |
|---|---|---|
| g | global | Trouve toutes les correspondances, pas seulement la première |
| i | ignore case | hello trouve aussi Hello et HELLO |
| m | multiline | ^ et $ correspondent au début et à la fin de chaque ligne |
| s | dot all | . correspond aussi à un saut de ligne |
| u | unicode | Lit un emoji comme un seul caractère et autorise les classes \p{...} |
| y | sticky | Chaque correspondance doit commencer exactement là où la précédente s’est terminée |
Exemples
Ces résultats viennent de l’exécution des motifs dans cet outil.
| Motif | Drapeaux | Texte | Correspondances |
|---|---|---|---|
\d+ |
aucun | a1 b22 c333 |
1 |
\d+ |
g | a1 b22 c333 |
1, 22, 333 |
hello |
gi | Hello hello HELLO |
Hello, hello, HELLO |
^\w+ |
gm | deux lignes : one two et three four |
one, three |
a.b |
g | a, saut de ligne, b |
aucune |
a.b |
gs | a, saut de ligne, b |
une correspondance |
La page s’ouvre sur un exemple de dates. Le motif (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) trouve trois dates dans le texte d’exemple : 2026-10-31, 2024-01-15 et 2026-11-02. Le remplacement $<day>/$<month>/$<year> transforme la première en 31/10/2026, le format de date français.
Un remplacement est aussi pratique pour nettoyer un texte. Le motif \s{2,} avec une seule espace comme remplacement transforme too many spaces en too many spaces.
Regex et texte français
En JavaScript, \w ne connaît que les lettres sans accent (a à z, A à Z, chiffres et tiret bas), et \b s’appuie sur la même définition. Un motif comme \w+ coupe donc « été » ou « français » en morceaux. Pour des mots français, activez le drapeau u et utilisez la classe Unicode des lettres : \p{L}+ trouve « été », « français » et « Noël » en entier. [\p{L}'-]+ garde aussi les apostrophes et les traits d’union de « aujourd’hui » ou « peut-être ».
Comment ça marche
Le testeur construit un RegExp JavaScript à partir de votre motif et de vos drapeaux, puis l’exécute sur le texte de test. Avec le drapeau g, il continue de chercher jusqu’à la fin. Il saute aussi les correspondances vides, pour qu’un motif comme x* ne boucle pas à l’infini.
Le texte est échappé avant d’être surligné. Tout HTML ou script présent dans votre texte d’exemple s’affiche en caractères simples et ne s’exécute jamais.
La recherche se fait dans un Web Worker, un fil d’exécution en arrière-plan. Si un motif tourne plus d’une seconde, le worker est arrêté et un nouveau démarre. Vous voyez un message au lieu d’un onglet figé.
Si un motif est invalide, vous obtenez le message d’erreur du navigateur. Par exemple, une ( seule donne « Unterminated group » (groupe non fermé).
Conseils et limites
- Attention aux répétitions imbriquées. Des motifs comme
(a+)+$ou(\w+\s?)*$peuvent prendre un temps énorme sur un texte qui correspond presque. C’est ce qu’on appelle le retour arrière catastrophique. Faites correspondre chaque partie à quelque chose de précis et évitez une répétition dans une répétition. - Échappez les caractères spéciaux. Pour trouver un vrai point, écrivez
\.. Il en va de même pour? * + ( ) [ ] { } ^ $ |et la barre oblique inverse elle-même. - Ancrez vos motifs de validation. Pour un champ de formulaire, entourez le motif de
^et$pour que toute la valeur doive correspondre, pas seulement une partie. - Une regex n’est pas un vrai analyseur. Elle convient pour repérer des e-mails ou des dates dans un texte. Ce n’est pas un moyen fiable d’analyser du HTML ni de vérifier qu’une adresse e-mail existe vraiment.
- Les très gros résultats sont plafonnés. L’outil liste jusqu’à 5 000 correspondances et affiche les 300 premières lignes dans le tableau de détail.
Autres façons de tester une regex
En ligne de commande, grep -oE affiche chaque correspondance sur sa propre ligne :
echo 'Call 555-010-9999 on 2026-10-31' | grep -oE '[0-9]{4}-[0-9]{2}-[0-9]{2}'
Cela affiche 2026-10-31. En Python, re.findall(r'\d{4}-\d{2}-\d{2}', 'from 2026-10-31 to 2024-01-15') renvoie ['2026-10-31', '2024-01-15']. Contrairement à JavaScript, le \w de Python reconnaît par défaut les lettres accentuées. En JavaScript, utilisez text.match(/pattern/g), ou text.matchAll() pour les groupes.
Outils associés
Pour transformer des titres en adresses web propres, utilisez le générateur de slug. Pour rendre un texte sûr dans un lien, utilisez l’outil pour encoder et décoder une URL.