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é.
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é.
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.
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.
Tapez un modèle, tapez une entrée de test, voyez les correspondances mises en évidence en direct.
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.