Testeur Regex
Teste les regex JavaScript avec surlignage live, groupes de capture et aperçu replace.
Matches in text
Capture groups
| # | Offset | Match | Group |
|---|---|---|---|
|
—
|
Replace preview
Quick reference
\d
Digit (0–9)
\w
Word char (a-z, 0-9, _)
\s
Whitespace
[^abc]
Anything except a/b/c
^/$
Start / end of line (with m flag)
a*
Zero or more
a+
One or more
a?
Zero or one
a{n,m}
Between n and m repetitions
(?<name>…)
Named capture group
(?=…)
Lookahead
(?<=…)
Lookbehind
À propos de cet outil
Regex Tester évalue les expressions régulières JavaScript contre un corps de texte de test et met en évidence chaque correspondance sur place. Le champ pattern accepte la syntaxe regex ECMAScript complète — ancres, classes de caractères, alternance, lookahead, lookbehind, groupes de capture nommés, échappements de propriétés Unicode — avec des bascules séparées pour les drapeaux standard (g global, i ignorer la casse, m multiligne, s point-correspond-au-saut-de-ligne, u Unicode, y sticky). Les correspondances sont colorées et les groupes de capture sont listés sous la mise en évidence pour chacune.
Au-delà de la correspondance, l'outil peut exécuter un aperçu de remplacement côte à côte avec l'original — tapez la chaîne de remplacement (avec les rétroréférences $1 / $<name>) et voyez exactement ce que votre regex produira contre l'entrée de test. Chaque opération s'exécute dans votre navigateur avec le moteur RegExp natif, donc ce que vous déboguez ici est exactement ce qui s'exécute en JavaScript de production (Node, Bun, Deno, chaque navigateur).
Quand utiliser cet outil
- Construire des validateurs d'entrée. Patterns d'email, numéro de téléphone, code postal — concevez et vérifiez avec des données de test réalistes avant de pousser dans le code.
- Analyser les fichiers journaux. Itérez un pattern de capture multi-groupes contre des vraies lignes de log jusqu'à ce que chaque champ ressorte propre.
- Édition en masse. Testez un pattern rechercher/remplacer avant de l'exécuter sur des centaines de fichiers dans votre éditeur.
- Apprendre regex. Les correspondances mises en évidence plus le feedback instantané est la façon la plus rapide d'intérioriser look-around, ancres et rétroréférences.
À propos des dialectes regex
Cet outil utilise regex JavaScript (ECMAScript 2018+). PCRE, Python, .NET, Go et Java diffèrent tous légèrement — PCRE prend en charge des patterns récursifs que JavaScript ne supporte pas, le modulere de Python manque de lookbehind dans certaines versions, Go utilise RE2 qui interdit complètement les rétroréférences. Si vous ciblez un environnement non-JS, revérifiez les fonctionnalités spécifiques au dialecte du côté récepteur. Pour les patterns purement compatibles ECMAScript, cet outil fait autorité.
Questions fréquentes
Quelle est la différence entre les drapeaux g, m et s ?
g (global) fait que .match() et .replace() trouvent toutes les correspondances au lieu de seulement la première. m (multiligne) fait que ^ et $ correspondent aux sauts de ligne dans l'entrée, pas seulement au début/fin de toute la chaîne. s (dotall) fait que . correspond aussi aux sauts de ligne (le comportement par défaut est de les sauter). Ils sont indépendants — combinez selon les besoins.
Pourquoi mon lookbehind ne fonctionne pas ?
(?<=...) nécessite ECMAScript moderne (2018+) et est disponible dans tous les navigateurs evergreen actuels et Node 10+. Les runtimes plus anciens (IE 11, Safari avant 16.4, très ancien Node) rejettent le pattern à la compilation. Notre testeur utilise le moteur du navigateur donc si votre testeur fonctionne mais que le runtime cible échoue, la cible est trop ancienne. Solution : réécrire sans lookbehind en utilisant un groupe non capturant et un slice.
Comment tester contre une longue chaîne ?
Qu'est-ce que le « backtracking catastrophique » ?
(a+)+ contre une longue chaîne se terminant par une non-correspondance. Le moteur regex essaie chaque permutation avant d'abandonner. Les moteurs JavaScript modernes n'ont pas de timeout, donc la page peut se figer. Correctif : réécrire sans quantificateurs imbriqués, utiliser des groupes possessifs via (?:a+), ou ancrer le pattern plus strictement.