Testeur d'expressions régulières
Saisissez un motif et un texte — les correspondances se surlignent en direct, avec les groupes de capture listés ci-dessous.
Construire un motif morceau par morceau
Le moyen le plus rapide d'arriver à une expression régulière qui fonctionne est d'une simplicité presque gênante : commencez par taper le texte littéral que vous voulez trouver, regardez-le se surligner, et généralisez-le seulement ensuite étape par étape — remplacez les chiffres par une classe comme [0-9]+, autorisez des parties optionnelles avec un point d'interrogation, ancrez-le avec ^ ou $ une fois que le milieu se comporte bien. Comme les correspondances se mettent à jour en direct pendant que vous tapez, chaque petite modification vous donne un retour instantané, et une erreur apparaît au moment où vous la commettez plutôt que trois modifications plus tard. Ce que vous collez dans la zone de texte est tout aussi important : incluez des lignes que le motif ne devrait pas reconnaître, pas seulement celles qu'il devrait reconnaître. Un motif testé uniquement sur des exemples favorables a l'habitude de reconnaître la moitié du document dès qu'il rencontre de vraies données.
Les groupes de capture font l'extraction
Entourez une partie d'un motif de parenthèses et elle devient un groupe de capture — le fragment de chaque correspondance que vous voulez réellement conserver. Un motif comme ([0-9]{2}):([0-9]{2}) exécuté sur une page de texte ne se contente pas de trouver des heures ; le tableau sous le texte liste chaque correspondance avec le groupe un contenant les heures et le groupe deux les minutes, plus la position où elle a été trouvée. Ajoutez le drapeau g et vous collectez chaque occurrence du texte au lieu de vous arrêter à la première. C'est le cœur honnête de la plupart du travail quotidien avec les regex : non pas une validation astucieuse, mais l'extraction de valeurs structurées — dates, numéros de commande, prix — depuis un texte qui n'a jamais été conçu pour être structuré.
Quand un motif se bloque — et le filet de sécurité
Certains motifs sont des pièges. Imbriquez un quantificateur ouvert dans un autre — la forme classique est (a+)+ — et sur une mauvaise entrée, le moteur essaie un nombre exponentiel de façons de découper le texte avant d'abandonner. Sur la plupart des sites, cela gèle l'onglet entier ; ici, la recherche de correspondances s'exécute dans un worker en arrière-plan qui est arrêté au bout de deux secondes, si bien que vous obtenez une explication plutôt qu'une page morte. Le remède consiste presque toujours à rendre le motif plus spécifique, pour que le moteur ait moins de façons de découper le même texte. Une réserve honnête : ce testeur utilise le moteur de JavaScript, ce qui est idéal si le motif est destiné à un script ou à une page web, mais Python et PCRE diffèrent sur quelques constructions — testez aussi dans le langage final. Quand les valeurs que vous extrayez sont destinées à un lien ou à une chaîne de requête, l'encodeur URL est l'étape suivante naturelle.
Comment fonctionne ce testeur
Votre motif est exécuté sur le texte à l'aide du propre moteur d'expressions régulières de JavaScript — celui que votre code utilisera réellement s'il s'agit d'un script ou d'une page web. Les correspondances sont surlignées dans le texte et listées avec leurs groupes de capture ci-dessous.
Quels drapeaux sont pris en charge ?
g (global — trouve toutes les correspondances, pas seulement la première), i (insensible à la casse) et m (multiligne, pour que ^ et $ correspondent aux limites de ligne) — ceux que vous utiliserez en pratique.
Pourquoi mon motif affiche-t-il une erreur ?
La syntaxe des expressions régulières de JavaScript présente quelques différences avec d'autres langages (PCRE, Python) — un caractère spécial non échappé ou une construction non prise en charge déclenchera une erreur de syntaxe, affichée directement plutôt qu'un résultat erroné silencieux.
Mon texte est-il envoyé quelque part ?
Non — la recherche de correspondances s'effectue entièrement dans votre navigateur avec du JavaScript pur. Rien n'est téléversé.
