Testeur de regex

Testez une regex JavaScript en direct avec tous les drapeaux (g i m s u y d) : correspondances surlignées, groupes nommés, indices et aperçu du remplacement.

//g

Utilise le moteur d'expressions régulières JavaScript (ECMAScript) de votre navigateur dans un worker en arrière-plan. Certaines syntaxes PCRE/Python, comme les quantificateurs possessifs ou les modificateurs (?i) en ligne, peuvent ne pas être prises en charge.

Qu'est-ce que Testeur de regex ?

Teste une expression régulière JavaScript sur votre texte pendant la saisie. Les correspondances sont surlignées, un tableau montre chaque correspondance avec sa position, les groupes capturants numérotés et nommés (et les indices de groupes avec le drapeau d), et un aperçu facultatif du remplacement montre le résultat de String.replace. Les motifs s’exécutent dans un worker en arrière-plan arrêté après 1,5 seconde : des motifs catastrophiques ne peuvent donc pas figer la page.

Comment utiliser Testeur de regex

  1. Saisissez le motif (sans barres obliques) dans Expression régulière.
  2. Cochez les drapeaux dont vous avez besoin : g, i, m, s, u, y, d.
  3. Collez le texte à parcourir dans Texte de test ; les correspondances se mettent à jour automatiquement.
  4. Cochez Remplacer les correspondances par… et saisissez un remplacement (avec $1, $<name>, $& …) pour voir un aperçu du résultat.

Exemple

Entrée
Pattern (?<y>\d{4})-(\d{2}) with flags g, text "a 2024-05 b 1999-12", replacement $2/$<y>
Sortie
2 match(es) · replaced: a 05/2024 b 12/1999

Motif (?<y>\d{4})-(\d{2}) avec le drapeau g, texte « a 2024-05 b 1999-12 », remplacement $2/$<y> : 2 correspondances, résultat « a 05/2024 b 12/1999 ».

Quand utiliser Testeur de regex

Utilisez-le pour construire et déboguer des regex pour JavaScript, TypeScript et Node.js, ainsi que pour des règles de validation ou des recherches-remplacements. Les autres moteurs (PCRE, Python, Java, .NET, POSIX) diffèrent par la syntaxe et les fonctionnalités (par exemple, quantificateurs possessifs, modificateurs en ligne comme (?i) et ancres \A/\Z ne sont pas disponibles) : testez aussi sur ces moteurs si vous les ciblez.

Comment fonctionne Testeur de regex

Le motif est compilé avec new RegExp(pattern, flags) dans un Web Worker. Avec g ou y, l’outil boucle sur exec() et collecte jusqu’à 1 000 correspondances (les correspondances vides avancent d’un point de code pour éviter les boucles infinies) ; sans eux, seule la première correspondance est signalée, exactement comme en JavaScript. Chaque correspondance enregistre ses indices de début et de fin, ses groupes capturants, ses groupes nommés et, avec le drapeau d, les indices de chaque groupe. L’aperçu du remplacement exécute text.replace(regex, replacement). Si le worker ne répond pas en 1 500 ms, il est arrêté et un message de dépassement de délai s’affiche.

Cas d'utilisation courants

  • Déboguer un motif de validation pour une saisie de formulaire
  • Extraire des données avec des groupes capturants nommés
  • Prévisualiser une recherche-remplacement avant de l’exécuter sur des fichiers
  • Comprendre comment les drapeaux m, s et u changent la correspondance
  • Vérifier qu’un motif ne provoque pas de retour arrière catastrophique

Questions Fréquentes

Pourquoi ma regex ne trouve-t-elle que la première correspondance ?

Sans le drapeau g (global), JavaScript s’arrête après la première correspondance. Cochez g pour lister toutes les correspondances.

Que fait le drapeau d ?

Il ajoute indices à chaque correspondance, donnant la position de début et de fin de chaque groupe capturant. L’outil les affiche à côté de chaque groupe.

Que se passe-t-il avec un motif catastrophique comme (a+)+$ ?

Le worker qui l’exécute est arrêté après 1,5 seconde et vous voyez un message de dépassement de délai au lieu d’un onglet figé.

Est-ce compatible avec les regex PCRE ou Python ?

En grande partie pour la syntaxe de base, mais pas complètement. L’outil utilise le moteur ECMAScript de votre navigateur.

Explorer d'autres catégories