This pattern has 2 capturing groups with 2 flags (gi) and is broken down into 14 parts below.
Flags
gglobal - find all matches in the input, not just the first oneiignore case - letters match regardless of upper or lower case^Start-of-string anchor (or start of a line with the m flag)(?<user>Start of a named capturing group "user" - saves its match under that name[a-z0-9._%+-]A single character from the set: the range "a" to "z", the range "0" to "9", the character ".", the character "_", the character "%", the character "+", the character "-"+Repeated one or more times)End of the group@A literal "@" character(?<domain>Start of a named capturing group "domain" - saves its match under that name[a-z0-9.-]A single character from the set: the range "a" to "z", the range "0" to "9", the character ".", the character "-"+Repeated one or more times\.A literal "." character (the backslash removes its special meaning)[a-z]A single character from the set: the range "a" to "z"{2,}Repeated 2 or more times)End of the group$End-of-string anchor (or end of a line with the m flag)
Un explicateur regex prend une expression régulière et la traduit en un anglais simple, une construction à la fois. Au lieu de plisser les yeux sur une ligne dense comme ^(?<user>[a-z0-9._%+-]+)@... Vous obtenez une répartition étiquetée : cette partie est une ancre, il s'agit d'un groupe de capture nommé, cette classe de caractères signifie "une lettre minuscule, un chiffre, un point ou un trait d'union", et ce quantificateur signifie "une ou plusieurs fois". Il transforme un mur de symboles en une liste de contrôle que vous pouvez lire.
Les expressions régulières sont compactes par leur conception, ce qui les rend puissantes mais difficiles à examiner. Le même modèle peut être écrit de plusieurs manières, et une seule barre oblique inverse ou un quantificateur gourmand change complètement le sens. La lecture d'un regex inconnu - dans une revue de code, un ancien fichier de configuration ou une réponse de dépassement de pile - signifie généralement simuler mentalement le moteur. Cet outil effectue cette simulation pour vous et montre le résultat sous la forme d'une liste ordonnée et en retrait qui reflète la structure du modèle, y compris les groupes imbriqués et les recherches.
Tout fonctionne côté client sur le même moteur JavaScript RegExp que votre code utilise, de sorte que le comportement et la validité du drapeau que vous voyez ici correspondent à la production. Votre modèle n'est jamais téléchargé, rien n'est enregistré et l'outil continue de fonctionner hors connexion une fois la page chargée. Cela importe quand la regex que vous essayez de comprendre provient d'une base de code privée ou correspond aux formats de données sensibles.
L'explication vous indique ce que dit un modèle, pas si c'est le bon modèle pour vos données - pour vérifier cela, l'exécuter contre une entrée réelle dans le testeur de regex. Parce qu'il se compile avec le propre moteur du navigateur, les constructions qui existent dans PCRE mais pas dans ECMAScript se comportent de deux manières différentes. Les quantificateurs possessifs tels que A++, les groupes atomiques (?>...) et la récursivité (?r) sont rejetés de façon pure et simple, avec le propre message du moteur. Le cas le plus subtil est \a et \z : sans le drapeau U, JavaScript les traite comme des échappements d'identité, de sorte qu'un modèle copié à partir de PHP ou Python est expliqué comme faisant correspondre un littéral A ou Z plutôt qu'une limite de chaîne, et aucune erreur n'est déclenchée. Les quantificateurs imbriqués comme (A+)+ sont également décrits normalement; le retour en arrière catastrophique est une propriété d'exécution de l'entrée, et non quelque chose de visible dans la structure.
Entrez le modèle sans les barres obliques environnantes - juste l'expression elle-même. Cliquez sur Charger un exemple pour démarrer à partir d'un exemple de correspondance d'e-mails.
Basculez les drapeaux utilisés par le modèle (g, i, m, s, u, y, d). L'explication signale ce que chaque indicateur fait et valide le modèle par rapport à cette combinaison de drapeaux.
Chaque jeton est répertorié dans l'ordre avec une description en anglais simple. Les groupes imbriqués sont en retrait afin que la structure du motif soit visible en un coup d'œil.
Copiez la ventilation intégrale du texte brut pour coller dans un commentaire de code, une note de demande d'extraction ou une documentation afin que le prochain lecteur n'ait pas à le décoder.
Chaque ancre, classe de caractères, quantificateur, groupe et escape obtient sa propre ligne avec une description, dans l'ordre où le moteur les lit
La capture, la non-capture, les groupes nommés et les quatre types de recherche sont étiquetés et en retrait afin que la structure imbriquée soit facile à suivre
Les drapeaux G, I, M, S, U, Y et D sont chacun décrits dans leur contexte, de sorte que vous comprenez comment ils modifient la correspondance entière, pas seulement la syntaxe
Les modèles sont validés avec le moteur de regexp natif du navigateur, de sorte qu'une expression non valide est détectée avec l'erreur exacte avant de vous y fier.
Extract email addresses, URLs, phone numbers, and IPv4 addresses from any block of text. De-duplicate, sort, and copy the results. Runs client-side.
Find and replace text with a regular expression, using capture group backreferences like $1 and named groups, with full flag support
Test regular expressions against sample text with live match highlighting, capture groups, and full flag support
Build, test, and debug regular expressions with real-time matching and a comprehensive cheatsheet
0 comments
No comments yet. Be the first to share your thoughts!