Diagram regulárneho výrazu
Zmeň regulárny výraz JavaScriptu na prehľadný železničný diagram so skupinami, alternatívami, cyklami a lookaround a exportuj ho ako SVG alebo PNG.
Príznaky: ľubovoľné z d g i m s u v y. Môžeš vložiť aj literál, napríklad /\d+/g.
- Zachytávacie skupiny
- –
- Alternatívy
- –
- Kvantifikátory
- –
Železničný diagram
Modrá: doslovný text. Zelená: typy znakov a množiny (červená: vylúčená množina). Fialová: kotvy a hranice. Oranžová: spätné odkazy. Prerušované rámčeky: skupiny a lookaround. Cesta nad položkou ju preskočí, cesta pod ňou ju opakuje.
Ako vizualizovať regulárny výraz
- Napíš alebo vlož vzor do poľa Regulárny výraz. Môžeš vložiť aj úplný literál JavaScriptu, napríklad
/^\d{3}-\d{4}$/gm: lomky sa odstránia a príznaky sa automaticky presunú do poľa príznakov. - Podľa potreby pridaj príznaky (ľubovoľné z
d g i m s u v y). Príznaky menia vykreslenie niektorých častí: smsa^a$zmenia na „začiatok riadka“ a „koniec riadka“; ssbodka znamená „ľubovoľný znak“. - Diagram sa aktualizuje počas písania. Nakresliť diagram ho prekreslí na požiadanie a Ďalší príklad prechádza niekoľko bežných vzorov (e-mail, telefónne číslo, hex farba, cena, značka HTML, URL).
- Diagram čítaj zľava doprava, od plného bodu k bodu s kruhom. Každá cesta, ktorou môžeš ísť, je reťazec, ktorý vzor dokáže zachytiť.
- Stiahnuť SVG dá ostrý vektorový obrázok (dokumentácia, prezentácie), Stiahnuť PNG obrázok s dvojnásobným rozlíšením a Kopírovať kód SVG skopíruje značky na vloženie do webovej stránky.
Keď prejdeš myšou nad rámček, uvidíš časť vzoru, z ktorej pochádza, a jej pozíciu.
Funguje v tvojom prehliadači. Nič, čo zadáš, sa neodosiela na server.
Ako čítať železničný diagram
Železničné diagramy, nazývané aj syntaktické diagramy, opisujú gramatiku ako sústavu tratí. Regulárny výraz je presne takou gramatikou, takže kresba ukazuje jeho štruktúru oveľa lepšie než hustý riadok symbolov:
- Modré rámčeky sú doslovný text, ktorý sa musí objaviť presne tak, ako je napísaný, napríklad
„@“. - Zelené rámčeky sú typy znakov (
\dčíslica,\wznak slova,.ľubovoľný znak…) a triedy znakov. Trieda ako[\w.+-]sa zobrazí ako rámček s nadpisom „jeden z“ so zoznamom položiek; negovaná trieda[^…]je červená s nadpisom „žiadny z“. - Fialové tabletky sú kotvy a hranice: začiatok a koniec textu alebo riadka, hranica slova
\b. Zachytávajú pozíciu, nie znak. - Oranžové prerušované rámčeky sú spätné odkazy, napríklad
\1alebo\k<name>: rovnaký text ako skupina zachytená skôr. - Prerušované rámy sú skupiny. Zachytávacie skupiny sa číslujú v poradí otváracích zátvoriek („skupina č. 2 „domain““); nezachytávacie skupiny
(?:…)rám nemajú. Lookahead a lookbehind dostanú ružový rám s označením „nasleduje“ alebo „predchádza“, pretože kontrolujú text bez jeho spotrebovania. - Paralelné trate sú alternatívy oddelené znakom
|. - Trať nad položkou umožňuje položku preskočiť (
?,*,{0,n}). Trať pod ňou so šípkou sa vracia späť na opakovanie (+,*,{n,m}). Iné než obvyklé počty sú napísané pod cyklom, napríklad „2 až 5 ד, a lenivé kvantifikátory (+?,*?) sú označené „lenivý“.
Chybové hlásenia s pozíciami
Vzor kontroluje vlastný engine regulárnych výrazov JavaScriptu v tvojom prehliadači, takže nástroj prijme presne to, čo prijme new RegExp() s rovnakými príznakmi. Keď engine vzor odmietne, nástroj ukáže na problematický znak s jeho pozíciou a značkou pod vzorom. Rozpozná nepárovú ), skupinu, ktorá nie je uzavretá, triedu znakov bez ], kvantifikátor, ktorý nemá čo opakovať (*a, a|+), osamotené spätné lomítko na konci a kvantifikátory {n,m}, kde je n väčšie než m. Ostatné chyby, napríklad spätný odkaz na neexistujúci názov skupiny, sa zobrazia s hlásením prehliadača.
Výraz sa len skompiluje na overenie: nikdy sa nespúšťa nad žiadnym textom a nič neopustí tvoj prehliadač.
Často kladené otázky
Ktorú variantu regex nástroj podporuje?
Regulárne výrazy JavaScriptu (ECMAScript) vrátane pomenovaných skupín, lookbehind, escape sekvencií vlastností Unicode \p{…} a príznaku v so vnorenými triedami. Vzory z PCRE, Pythonu či Javy zvyčajne tiež fungujú, ale syntax špecifická pre tieto enginy, napríklad privlastňovacie kvantifikátory alebo (?P<name>…), sa odmietne, pretože ju prehliadač nepodporuje.
Prečo sa moja nezachytávacia skupina nekreslí ako rámček?
Skupina ako (?:\.[\w-]+) len zoskupuje položky, aby sa kvantifikátor alebo alternatíva vzťahovali na všetky. Nič nezachytáva, takže diagram ukáže jej obsah a cyklus bez rámu, čo zachová kresbu čitateľnú. Skupiny s inline príznakmi majú rám a označenie s týmito príznakmi.
Aký je rozdiel medzi trasou na preskočenie a cyklom?
Trať nad položkou znamená „nula opakovaní je povolená“ a trať pod ňou znamená „môže sa opakovať“. ? má len hornú trať, + len dolnú a * obe. Pri kvantifikátore ako {2,4} nesie cyklus označenie „2 až 4 ד.
Môžem diagram použiť vo svojej dokumentácii?
Áno. Export SVG je samostatný vektorový súbor s bielym pozadím a tmavými čiarami, ideálny pre súbory README, wiki a prezentácie. Export PNG sa vykresľuje v dvojnásobnej veľkosti oproti kresbe na obrazovke, aby bol ostrý na obrazovkách s vysokou hustotou.
Existuje obmedzenie veľkosti?
Vzory môžu mať až 5 000 znakov. Veľmi dlhé výrazy vytvoria široký diagram, ktorý môžeš posúvať vodorovne; rozdelenie na pomenované časti často uľahčí údržbu diagramu aj regexu.
Súvisiace nástroje
- Tester regulárnych výrazov Testuj regulárne výrazy JavaScriptu naživo so zvýraznenými zhodami, zachytávacími skupinami, nahradením a vysvetlením každého prvku vzoru v bežnom jazyku.
- Prehliadač AST pre JavaScript Vlož JavaScript a prezeraj si jeho abstraktný syntaktický strom (ESTree, parser Acorn) v prehliadači. Klikaj na uzly a exportuj AST ako JSON.
- Formátovanie a validácia JSON Bezplatný formátovač a validátor JSON, ktorý skrášľuje, minifikuje a kontroluje JSON v prehliadači a hlási syntaktické chyby s riadkom a stĺpcom.