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)
Een regex-uitlegger neemt een reguliere expressie en vertaalt deze in gewoon Engels, één constructie tegelijk. In plaats van te loensen naar een dichte lijn zoals ^(?<user>[A-Z0-9._%+-]+)@... Je krijgt een gelabelde afbraak: dit deel is een anker, dit is een genoemde vastleggroep, deze karakterklasse betekent "een kleine letter, een cijfer, een punt of een koppelteken", en deze kwantificator betekent "een of meer keren". Het verandert een muur van symbolen in een checklist die je kunt lezen.
Regelmatige uitdrukkingen zijn compact van ontwerp, waardoor ze krachtig zijn, maar moeilijk te beoordelen zijn. Hetzelfde patroon kan op vele manieren worden geschreven, en een enkele verdwaalde backslash of een hebzuchtige kwantificator verandert de betekenis volledig. Het lezen van een onbekende regex - in een codebeoordeling, een oud configuratiebestand of een stapeloverloopantwoord - betekent meestal dat de engine mentaal wordt gesimuleerd. Deze tool doet die simulatie voor u en toont het resultaat als een geordende, ingesprongen lijst die de structuur van het patroon weerspiegelt, inclusief geneste groepen en lookarounds.
Alles draait aan de clientzijde op dezelfde JavaScript RegExp Engine die uw code gebruikt, dus het vlaggedrag en de validiteit die u hier ziet, komen overeen met de productie. Uw patroon wordt nooit geüpload, er wordt niets gelogd en de tool blijft offline werken zodra de pagina is geladen. Dat is van belang wanneer de regex die u probeert te begrijpen, afkomstig is van een privécodebase of overeenkomt met gevoelige gegevensformaten.
De uitlegger vertelt je wat een patroon zegt, niet of het het juiste patroon is voor je gegevens - om dat te controleren, moet je het tegen echte invoer in de regex-tester uitvoeren. Omdat het compileert met de eigen engine van de browser, gedraagt het zich op twee verschillende manieren in PCRE, maar niet in ecmascript. Bezitsmatige kwantoren zoals A++, atomaire groepen (?>...) en recursie (?R) worden regelrecht afgewezen, met de eigen boodschap van de motor. Het subtielere geval is \a en \z: zonder de U-vlag behandelt JavaScript ze als identiteitsontsnapping, dus een patroon dat is gekopieerd van PHP of Python wordt uitgelegd als het matchen van een letterlijke A of Z in plaats van een stringgrens, en er wordt geen fout opgeheven. Geneste kwantoren zoals (A+)+ worden normaal ook beschreven; catastrofale backtracking is een runtime-eigenschap van de invoer, niet iets dat zichtbaar is in de structuur.
Voer het patroon in zonder de omringende schuine strepen - alleen de uitdrukking zelf. Klik op Voorbeeld laden om te beginnen met een voorbeeld van een bewerkte e-mail die overeenkomt met het matchen van e-
Schakel de vlaggen die het patroon gebruikt (G, I, M, S, U, Y, D). De uitlegger rapporteert wat elke vlag doet en valideert het patroon tegen die vlagcombinatie.
Elk token wordt in volgorde vermeld met een duidelijke Engelse beschrijving. Geneste groepen zijn ingesprongen, zodat de structuur van het patroon in één oogopslag zichtbaar is.
Kopieer de volledige indeling in platte tekst om in een codecommentaar, een notitie van een pull-request of documentatie te plakken, zodat de volgende lezer deze niet hoeft te decoderen.
Elke anker, karakterklasse, kwanter, groep en ontsnapping krijgt zijn eigen lijn met een beschrijving, in de volgorde waarin de motor ze leest
Het vastleggen, niet-veroveren, benoemde groepen en alle vier de lookaround-typen zijn gelabeld en ingesprongen, dus de geneste structuur is gemakkelijk te volgen
De vlaggen van G, I, M, S, U, Y en D worden elk beschreven in context, dus je begrijpt hoe ze de hele wedstrijd veranderen, niet alleen de syntaxis
Patronen worden gevalideerd met de browser native regexp-engine, dus een ongeldige uitdrukking wordt opgevangen met de exacte fout voordat u erop vertrouwt
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!