Aller au contenu

Tester des expressions régulières

Testez une expression régulière JavaScript sur votre texte : correspondances surlignées en direct, groupes de capture et explication en langage simple, directement dans votre navigateur.

Moteur d’expressions régulières JavaScript (ECMAScript)Le même moteur que votre navigateur, Node.js et Deno
//g

$1 ou $<nom> insère un groupe, $& la correspondance entière, $` et $' le texte avant et après, $$ un signe dollar.

Les correspondances et les groupes de capture s’affichent ici.

Fonctionne dans votre navigateur · aucun envoiComment ça marche

Comment utiliser Testeur de regex

  1. 1

    Saisissez un motif

    Tapez l’expression régulière sans les barres obliques ; les indicateurs se règlent avec les boutons situés en dessous.

  2. 2

    Ajoutez un texte de test

    Collez le texte à analyser : les correspondances sont surlignées et listées avec leurs groupes de capture pendant la frappe.

  3. 3

    Consultez l’explication

    Ouvrez Explication pour lire chaque jeton en langage simple et comprendre ce que fait vraiment le motif.

  4. 4

    Prévisualisez un remplacement

    Saisissez un remplacement avec $1 ou $<nom> pour voir le résultat, puis copiez le code depuis l’onglet Code.

Limites et Pro

Gratuit et sans inscription : jusqu’à 100 000 correspondances comptées, 2 000 surlignées et 200 listées dans le tableau ; le surlignage couvre les textes de test jusqu’à 200 000 caractères, et chaque exécution est interrompue après 1,5 seconde.

Pro supprime les publicités ; l’outil fonctionne de la même manière avec toutes les formules. Découvrir Pro

À propos de Testeur de regex

Cet outil exécute votre motif avec le moteur d’expressions régulières JavaScript (ECMAScript) intégré au navigateur, le même que celui de Node.js, Deno, Bun et de toutes les pages web : ce qui correspond ici correspondra aussi dans votre code. Saisissez un motif et un texte de test : chaque correspondance est surlignée pendant la frappe, avec un tableau des positions, les groupes de capture numérotés et nommés, ainsi que le début et la fin de chaque groupe lorsque l’indicateur d est activé.

Les huit indicateurs peuvent être activés ou désactivés : g pour toutes les correspondances, i pour ignorer la casse, m pour que ^ et $ s’appliquent à chaque ligne, s pour que le point couvre aussi les retours à la ligne, u pour Unicode complet et les échappements de propriétés \p{…}, v pour les ensembles Unicode avec intersection et soustraction entre crochets, y pour la correspondance collante et d pour les indices. Le champ de remplacement affiche un aperçu de String.prototype.replace avec $1, $<nom>, $& et les autres jetons de substitution, et l’onglet Code fournit les extraits littéral, matchAll et RegExp() correspondants.

L’onglet Explication découpe le motif en jetons et décrit en langage simple le rôle de chacun : groupes, assertions de contexte, classes de caractères, quantificateurs, gourmands ou paresseux. L’aide-mémoire insère les jetons courants à l’emplacement du curseur.

La recherche s’exécute dans un Web Worker en arrière-plan, avec une limite de 1,5 seconde. Un motif qui provoque un retour arrière catastrophique, comme (a+)+b appliqué à une longue suite de « a », est interrompu avec une explication au lieu de bloquer l’onglet. Les motifs écrits pour PCRE, Python ou .NET peuvent demander des modifications : les quantificateurs possessifs, les groupes atomiques, la récursivité, \A et \Z n’existent pas en JavaScript.

Confidentialité

Les motifs et les textes de test restent dans cet onglet du navigateur : la recherche s’exécute dans un Web Worker local et rien de ce que vous saisissez n’est envoyé, journalisé ni enregistré. Vous pouvez donc tester sans risque sur de vraies lignes de journal ou des données clients.

Fonctionnalités

Le vrai moteur JS

Les correspondances sont identiques à celles de RegExp dans les navigateurs et Node.js, y compris les ensembles de l’indicateur v et les groupes nommés.

Explication jeton par jeton

Chaque groupe, classe, ancre et quantificateur est décrit en langage simple.

Protection contre le retour arrière

La recherche s’exécute dans un worker avec une limite de 1,5 seconde : un mauvais motif ne peut pas bloquer la page.

Testeur de regex : questions fréquentes

Quelle variante de regex cet outil utilise-t-il ?
Celle de JavaScript, définie par la norme ECMAScript et implémentée par votre navigateur. Elle prend en charge lookbehind, groupes nommés, propriétés Unicode et indicateur v, mais pas les fonctions PCRE comme les quantificateurs possessifs, les groupes atomiques, la récursivité ou les conditions. La syntaxe Python (?P<nom>…) doit s’écrire (?<nom>…). Les résultats sont les mêmes que sous Node.js et Deno avec la même version du moteur.
Pourquoi mon motif ne trouve-t-il que la première correspondance ?
Sans l’indicateur g, JavaScript s’arrête après la première correspondance : exec et match renvoient un seul résultat et replace ne modifie que la première occurrence. Activez g pour trouver et remplacer toutes les correspondances. L’indicateur collant y est différent : il ne correspond qu’à l’endroit exact où la précédente s’est terminée, ce qui sert pour les analyseurs lexicaux.
Qu’est-ce qu’un retour arrière catastrophique ?
Quand un motif peut correspondre au même texte de plusieurs façons, comme avec des quantificateurs imbriqués du type (a+)+ ou (.*)*, un échec oblige le moteur à essayer toutes les combinaisons, leur nombre croissant de façon exponentielle avec la longueur du texte. Ici, l’exécution s’arrête après 1,5 seconde avec un avertissement. Rendez les alternatives exclusives, par exemple [^,]* plutôt que .* avant une virgule.
Comment utiliser les groupes de capture dans le remplacement ?
Écrivez $1, $2, etc. pour les groupes numérotés, ou $<nom> pour un groupe nommé comme (?<year>\d{4}). $& insère toute la correspondance, $` le texte qui précède et $' le texte qui suit, et $$ produit un signe dollar littéral. Essayer un exemple charge un motif de date qui réordonne ainsi l’année, le mois et le jour.
Quand ai-je besoin de l’indicateur u ou v ?
Utilisez u quand votre texte contient des emoji ou d’autres caractères hors du plan multilingue de base : le point et les quantificateurs les traitent alors comme un seul caractère, et les propriétés Unicode de type \p{L} deviennent utilisables. Le plus récent v inclut tout ce que fait u et ajoute des opérations d’ensembles entre crochets, comme [\p{L}--[a-z]] pour les lettres non ASCII. Les deux indicateurs ne peuvent pas être combinés.