Encoders & Utilities

Testeur Regex

Teste les regex JavaScript avec surlignage live, groupes de capture et aperçu replace.

g (global), i (case-insensitive), m (multiline), s (dotall), u (unicode), y (sticky)

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 module re 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 ?

Lookbehind (?<=...) 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 ?

Collez-la dans le panneau de texte de test — il n'y a pas de limite de longueur au-delà de ce que le navigateur peut contenir. Pour les fichiers, collez directement leur contenu. Les correspondances mises en évidence restent synchronisées au défilement. Pour les entrées extrêmes (mégaoctets de texte plus une regex à backtracking catastrophique) la page peut se figer brièvement ; si cela arrive, simplifiez la regex ou divisez l'entrée.

Qu'est-ce que le « backtracking catastrophique » ?

Un pattern qui prend un temps exponentiel sur certaines entrées — typiquement des quantificateurs imbriqués comme (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.