Testeur et Débogueur d'Expressions Régulières
Testez et déboguez vos expressions régulières en ligne avec coloration en direct, extraction de groupes de capture, prévisualisation de substitution et modèles de motifs selon la norme ECMAScript ECMA-262.
Mode d'emploi
Saisissez votre motif d'expression régulière dans la barre de saisie.
Activez les modificateurs ou drapeaux (g pour global, i pour insensible à la casse, m pour multiligne, s pour dotAll, u pour Unicode, y pour sticky).
Saisissez ou collez votre texte d'essai dans l'éditeur de chaîne de test.
Examinez les correspondances surlignées, les décalages de position et les groupes de capture numérotés ou nommés dans le panneau d'inspection.
Saisissez éventuellement un modèle de remplacement en mode Substitution pour tester vos transformations.
Fonctionnement de l'évaluation des expressions régulières
Une expression régulière (regex) est une séquence de caractères définissant un modèle de recherche. Selon la spécification ECMAScript ECMA-262, le moteur JavaScript analyse les expressions en arbres syntaxiques abstraits et les compile en automates d'états finis pour effectuer les correspondances de motifs sur les chaînes cibles.
Modificateurs RegExp et comportements standards
| Drapeau | Nom | Comportement standard |
|---|---|---|
g | Global | Recherche toutes les correspondances dans la chaîne au lieu de s'arrêter à la première occurrence. Met à jour la propriété lastIndex. |
i | Ignore Case | Effectue une recherche insensible à la casse selon les règles Unicode. |
m | Multiligne | Traite ^ et $ comme le début et la fin de chaque ligne (séparées par \n ou \r\n). |
s | DotAll | Permet au métacaractère point . de correspondre aux retours à la ligne (\n, \r, \u2028, \u2029). |
u | Unicode | Active la gestion complète des paires de substitution UTF-16 et les propriétés Unicode telles que \p{Letter}. |
y | Sticky | Recherche uniquement à partir de la position exacte indiquée par lastIndex. |
Groupes de capture et jetons de substitution
Les parenthèses (...) créent des groupes de capture numérotés qui extraient des sous-parties de la chaîne. Les groupes nommés (?<name>...) attribuent des identifiants lisibles. En mode substitution, vous pouvez référencer ces captures :
$&: Insère l'intégralité de la correspondance trouvée.$1, $2, ... $n: Insère le 1er au n-ième groupe de capture.$<name>: Insère le groupe de capture nommé.$`: Insère la portion précédant la correspondance.$': Insère la portion suivant la correspondance.$$: Échappe un symbole dollar littéral ($).
Performances et retour sur trace catastrophique
Des quantificateurs imbriqués sur des sous-motifs redondants (comme (a+)+$) peuvent déclencher un backtracking catastrophique. Notre évaluateur intègre des protections d'exécution et des délais d'expiration automatiques dans votre session de navigation pour garantir une parfaite stabilité.
Garantie zéro transfert sur serveur
Les données de test contiennent fréquemment des logs confidentiels, des extraits de bases de données ou des identifiants. Toutes les opérations de compilation, de correspondance et de substitution s'exécutent intégralement dans votre navigateur web localement. Aucune donnée n'est transmise sur le réseau.
Foire aux questions
Quel dialecte d'expressions régulières est utilisé ?
Cet outil utilise le moteur natif ECMAScript (JavaScript) conforme à la norme ECMA-262, supportant les drapeaux g, i, m, s, u et y.
Quelle est la différence entre groupe capturant et non-capturant ?
Les parenthèses classiques (abc) mémorisent le texte correspondant pour extraction. Les groupes non-capturants (?:abc) permettent d'appliquer un quantificateur sans consommer d'index de groupe ni de mémoire.
Que sont les assertions avant et arrière (lookaround) ?
Les lookarounds sont des vérifications de largeur nulle : lookahead positif (?=...), lookahead négatif (?!...), lookbehind positif (?<=...) et lookbehind négatif (?<!...). Ils valident le contexte sans consommer de caractères.
Pourquoi mon expression ne trouve-t-elle pas toutes les correspondances ?
Par défaut, une expression s'arrête dès la première occurrence. Pour parcourir l'ensemble de la chaîne de test, vérifiez que le drapeau global (g) est activé.
Mes données ou expressions sont-elles conservées sur un serveur ?
Non. Toutes les opérations s'exécutent à 100% en local dans votre navigateur. Aucune donnée n'est envoyée vers des serveurs distants.