Convertisseur Gratuit

Testeur d'Expressions Régulières

Testez et déboguez des expressions régulières instantanément dans votre navigateur. Mettez en surbrillance les correspondances, visualisez les groupes de capture — gratuit et privé.

//g
Indicateurs:

À propos de cet outil

Les expressions régulières sont un langage spécifique à un domaine pour faire correspondre des modèles dans le texte. Ils font partie de l'informatique depuis 1968 et sont désormais intégrés à tous les langages de programmation, éditeurs de texte et outils de recherche en ligne de commande modernes. La syntaxe est concise mais sujette aux erreurs : de petites modifications produisent un comportement de correspondance subtilement différent et les expressions complexes deviennent rapidement illisibles. Un testeur qui affiche les correspondances en temps réel lorsque vous modifiez le modèle est le moyen le plus efficace de développer et de vérifier les expressions régulières.

Ce testeur s'exécute dans votre navigateur à l'aide du moteur d'expression régulière JavaScript (le même que celui que votre application utilise si elle s'exécute dans un navigateur). Les modèles et le texte de test sont mis à jour de manière réactive : chaque modification apportée à l'un ou l'autre réexécute la correspondance. Les groupes de correspondance sont mis en surbrillance, les groupes capturés sont répertoriés et les indicateurs (insensibles à la casse, multilignes, globaux) sont exposés pour les tests.

La syntaxe Regex varie subtilement entre les moteurs. JavaScript suit la spécification ECMAScript ; Python, PCRE (utilisé par PHP et bien d'autres), Java et Go ont chacun leurs propres dialectes avec des fonctionnalités qui se chevauchent mais ne sont pas identiques. Les modèles développés ici utilisent la syntaxe ECMAScript ; La portabilité multi-moteurs nécessite de vérifier la documentation de chaque cible.

Pourquoi utiliser un testeur Regex

Les bogues Regex sont notoirement difficiles à déboguer après le déploiement. Un modèle qui semble raisonnable peut correspondre plus ou moins que prévu, échouer dans des cas extrêmes ou entraîner un retour en arrière catastrophique sur certaines entrées. Tester les modèles de manière interactive par rapport à des entrées représentatives détecte les problèmes avant la révision et la production du code.

Les modèles bénéficient également de la documentation. Afficher une expression régulière à côté de l’entrée à laquelle elle doit correspondre et de l’entrée à laquelle elle ne doit pas correspondre rend l’intention explicite. Les futurs responsables (y compris vous-même dans six mois) apprécient davantage les cas de tests documentés que les répliques intelligentes.

Comment l'utiliser

Tapez un modèle, tapez une entrée de test, voyez les correspondances mises en évidence en direct.

  1. Entrez votre modèle: Tapez le modèle d'expression régulière dans le champ du modèle. Les expressions régulières littérales (/pattern/flags) et les formulaires de modèle uniquement fonctionnent ; les drapeaux peuvent être définis via l’entrée flags.
  2. Ajouter une entrée de test: Collez un exemple de texte auquel le modèle doit correspondre (et idéalement également un texte auquel il ne doit pas correspondre). Le testeur exécute le modèle par rapport à l'entrée et met en évidence les correspondances.
  3. Définir des drapeaux: Indicateurs courants : g (global, rechercher toutes les correspondances), i (insensible à la casse), m (multiligne, ^ et $ correspondent au début/à la fin de la ligne), s (dotall, . correspond aux nouvelles lignes), u (Unicode).
  4. Inspecter les résultats: Chaque correspondance est mise en évidence dans l'entrée. Les groupes de capture apparaissent dans une liste avec l'index et la valeur du groupe. Le testeur affiche également le nombre de correspondances et les éventuelles erreurs de compilation dans le modèle.

Cas d'utilisation courants

Détails techniques

L'expression régulière JavaScript suit la spécification ECMAScript. Principales fonctionnalités : classes de caractères ([abc], [^abc]), quantificateurs (*, +, ?, {n,m}), alternance (|), regroupement ((...)), groupes de capture et de non-capture, anticipation et analyse arrière (moteurs modernes), références arrière, groupes nommés, échappements de propriétés Unicode (avec l'indicateur u) et l'ensemble standard de séquences d'échappement.

Différences importantes par rapport à PCRE et Python : la prise en charge du lookbehind est récente dans JavaScript (2018+) ; les groupes nommés utilisent la syntaxe (?<nom>...) ; certaines évasions Unicode nécessitent que l'indicateur u fonctionne correctement. Les modèles destinés à une utilisation multilingue doivent être vérifiés par rapport à la documentation de chaque cible.

Performances : les moteurs d'expressions régulières basés sur le backtracking (la plupart incluant JavaScript) peuvent avoir un backtracking catastrophique sur certains modèles pathologiques. Les tests qui bloquent le testeur sont le signe que le modèle doit être simplifié, généralement en évitant les quantificateurs imbriqués et les alternances ambiguës.

Meilleures pratiques

Questions fréquentes

Quelle version d'expression régulière cet outil prend-il en charge ?
Il utilise le moteur RegExp intégré de JavaScript, qui prend en charge la syntaxe standard, notamment les analyses anticipées, les analyses ultérieures (dans les navigateurs modernes), les groupes de capture nommés et les échappements de propriétés Unicode.
Puis-je tester les remplacements d’expressions régulières ?
Oui. Passez en mode Remplacer pour saisir un modèle de remplacement. Vous pouvez utiliser $1, $2, etc. pour capturer les références arrière de groupe et $<name> pour les groupes nommés.
Pourquoi mon expression régulière correspond-elle différemment ici qu'en Python/PHP ?
Différents langages de programmation ont des moteurs d'expressions régulières légèrement différents. JavaScript ne prend pas en charge les quantificateurs possessifs ni certaines fonctionnalités spécifiques à PCRE. La syntaxe de base (classes de caractères, quantificateurs, groupes) est la même dans toutes les langues.
L'outil enregistre-t-il mes modèles d'expressions régulières ?
Non, rien n’est sauvegardé ni transmis. L'outil fonctionne entièrement dans votre navigateur. Vous pouvez ajouter ou partager des modèles en copiant la chaîne regex.
Comment faire correspondre un caractère spécial littéral ?
Échappez-y avec une barre oblique inverse. Pour faire correspondre un point littéral : \. Pour faire correspondre une barre oblique inverse littérale : \\. A l'intérieur des classes de caractères [...], la plupart des caractères spéciaux perdent leur signification.
Le testeur fonctionne-t-il sur un serveur ?
Non. La compilation et la correspondance de modèles s'effectuent dans votre navigateur à l'aide de l'objet RegExp natif.
Puis-je tester des modèles pour les moteurs non JavaScript ?
Surtout. Pour les modèles simples, les principaux moteurs sont d'accord. Pour les fonctionnalités avancées (lookbehind, groupes atomiques, quantificateurs possessifs, échappements de propriétés Unicode), vérifiez par rapport à la documentation du moteur cible.
Gère-t-il des entrées très volumineuses ?
Jusqu'à quelques mégaoctets, cela fonctionne sans problème. Des entrées plus volumineuses peuvent ralentir ou bloquer le navigateur, en particulier avec des modèles sujets au retour en arrière.