Outils Nettoyage

Testeur Regex en Ligne Gratuit

Testez et déboguez vos expressions régulières JavaScript dans le navigateur. Visualisez les correspondances surlignées en temps réel, inspectez les groupes de capture et prévisualisez les remplacements. Rien n'est envoyé à un serveur.

Drapeaux
Modèles Rapides

Résultats des Correspondances

Toutes les correspondances sont calculées localement dans votre navigateur. Vos motifs et votre texte ne sont jamais envoyés, stockés ni enregistrés.

Qu'est-ce qu'une Expression Régulière ?

Une expression régulière (regex) est une séquence de caractères qui définit un motif de recherche. Plutôt que de chercher une chaîne fixe, une regex décrit la forme du texte recherché — chiffres, mots, adresses e-mail, dates, etc. Cela fait de la recherche par motif l'un des outils les plus puissants pour les développeurs, analystes de données et administrateurs système, qui l'utilisent chaque jour pour valider des saisies, parcourir des journaux et transformer du texte rapidement et de façon fiable.

Les Drapeaux Regex JavaScript Expliqués

g global — trouve toutes les correspondances de la chaîne, pas seulement la première.
i insensible à la casse — les lettres correspondent quelle que soit la casse.
m multiligne — les ancres ^ et $ correspondent au début et à la fin de chaque ligne, pas seulement de la chaîne entière.
s dotAll — le point . correspond aussi aux caractères de saut de ligne.
u unicode — active la correspondance Unicode complète, y compris les points de code au-delà de U+FFFF.

Référence des Motifs Regex Courants

Motif Regex Correspond à
E-mail /[^\s@]+@[^\s@]+\.[^\s@]+/ hello@charcount.app
URL /https?:\/\/[^\s]+/ https://charcount.app
IPv4 /\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/ 192.168.0.1
Date (AAAA-MM-JJ) /\d{4}-\d{2}-\d{2}/ 2026-06-30
Couleur Hex /#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})\b/ #4338ca
UUID v4 /[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab]…/i 9f1c…5b6c

Groupes de Capture Regex

Les parenthèses permettent de capturer des parties d'une correspondance pour les extraire ou les réutiliser. Il en existe trois types :

  • ( ) — groupe de capture : stocke ce qu'il a capturé, accessible via $1, $2, … dans les remplacements.
  • (?: ) — groupe non capturant : regroupe le motif pour une alternance ou un quantificateur sans le stocker.
  • (?<name> ) — groupe nommé : capture avec un nom lisible, accessible via groups.nom.

Par exemple, analyser une date avec trois groupes : (\d{4})-(\d{2})-(\d{2})

Questions Fréquentes

.* est gourmand : il capture le plus de texte possible, puis revient en arrière si nécessaire. .*? est paresseux (non gourmand) : il capture le moins possible et ne s'étend que si nécessaire. Par exemple, sur le texte "<a><b>", le motif <.*> capture tout "<a><b>", tandis que <.*?> ne capture que "<a>". Utilisez la version paresseuse quand vous voulez la correspondance la plus courte, comme pour analyser des balises HTML individuelles.

Des caractères comme . ( ) [ ] { } + * ? ^ $ | \ ont une signification spéciale en regex ; pour les faire correspondre littéralement, échappez-les avec une barre oblique inverse. Écrivez \. pour un point littéral, \( pour une parenthèse ouvrante littérale et \\ pour une barre oblique inverse littérale. À l'intérieur d'une classe de caractères, par exemple [.], la plupart de ces caractères perdent leur sens spécial et n'ont pas besoin d'être échappés.

La plupart des testeurs en ligne utilisent par défaut le moteur PCRE, tandis que cet outil et votre navigateur utilisent le moteur JavaScript (ECMAScript), qui manque de certaines fonctionnalités. JavaScript ne prend pas en charge le lookbehind sur les anciens moteurs, les quantificateurs possessifs, la récursivité ou les drapeaux en ligne comme (?i). Assurez-vous que votre testeur est réglé sur la variante JavaScript pour que le comportement corresponde à celui de votre code.

Le drapeau g (global) fait que la regex trouve toutes les correspondances de la chaîne au lieu de s'arrêter à la première. Il est nécessaire avec des méthodes comme matchAll() ou replaceAll(), ou pour remplacer toutes les occurrences avec replace(). Sans g, des méthodes comme replace() ne modifient que la première correspondance. Notez qu'une regex globale conserve un état lastIndex ; réutilisez-la avec précaution lors d'appels à exec() dans une boucle.