Regex-vizualizáló
Alakíts egy JavaScript reguláris kifejezést áttekinthető vasúti diagrammá csoportokkal, ciklusokkal és lookaroundokkal, majd exportáld SVG-ként vagy PNG-ként.
Flagek: bármelyik a d g i m s u v y közül. Beilleszthetsz literált is, például /\d+/g.
- Rögzítő csoportok
- –
- Alternatívák
- –
- Kvantorok
- –
Vasúti diagram
Kék: szó szerinti szöveg. Zöld: karaktertípusok és halmazok (piros: kizárt halmaz). Lila: horgonyok és határok. Narancssárga: visszahivatkozások. Szaggatott keretek: csoportok és lookaroundok. Egy elem fölötti ösvény átugorja, az alatta lévő megismétli.
Hogyan jeleníts meg egy reguláris kifejezést
- Írd be vagy illeszd be a mintát a Reguláris kifejezés mezőbe. Egy teljes JavaScript-literált is beilleszthetsz, például
/^\d{3}-\d{4}$/gm: a perjeleket az eszköz eltávolítja, a flagek pedig automatikusan átkerülnek a flagek mezőbe. - Szükség esetén adj meg flageket (bármelyiket a
d g i m s u v yközül). A flagek befolyásolják, hogy egyes részek hogyan rajzolódnak ki: azmesetén a^és a$„a sor eleje” és „a sor vége” lesz, azsesetén a pont „bármely karakter” lesz. - A diagram gépelés közben frissül. A Diagram rajzolása kérésre újrarajzolja, a Következő példa pedig néhány gyakori mintán lépked végig (e-mail-cím, telefonszám, hexa színkód, ár, HTML-címke, URL).
- A diagramot balról jobbra olvasd, a teli ponttól a gyűrűs pontig. Minden követhető út egy olyan szöveg, amelyre a minta illeszkedhet.
- Az SVG letöltése éles vektorképet ad (dokumentációhoz, diákhoz), a PNG letöltése kétszeres felbontású képet, az SVG-kód másolása pedig a kódot, amelyet beilleszthetsz egy weboldalba.
Vidd az egeret egy doboz fölé, hogy lásd, a minta melyik részéből származik, és hol található.
Hogyan olvass vasúti diagramot
A vasúti diagramok, más néven szintaxisdiagramok, a nyelvtant sínek halmazaként írják le. A reguláris kifejezés pontosan ilyen nyelvtan, ezért a rajz sokkal jobban megmutatja a szerkezetét, mint egy sűrű szimbólumsor:
- A kék dobozok szó szerinti szövegek, amelyeknek pontosan így kell szerepelniük, például
„@”. - A zöld dobozok karaktertípusok (
\dszámjegy,\wszókarakter,.bármely karakter…) és karakterosztályok. Egy olyan osztályból, mint a[\w.+-], „valamelyik” fejlécű doboz lesz, amely felsorolja az elemeket; a tagadott[^…]osztály piros, és „egyik sem” fejlécet kap. - A lila tabletták horgonyok és határok: a szöveg vagy a sor eleje és vége, a
\bszóhatár. Pozícióra illeszkednek, nem karakterre. - A narancssárga szaggatott dobozok visszahivatkozások, például
\1vagy\k<name>: ugyanaz a szöveg, amelyet egy korábbi csoport illesztett. - A szaggatott keretek csoportok. A rögzítő csoportokat a nyitó zárójelük sorrendjében számozza az eszköz (például „#2. csoport »domain«”); a nem rögzítő
(?:…)csoportok nincsenek bekeretezve. A lookahead és a lookbehind rózsaszín keretet kap „ezt követi” vagy „ez előzi meg” felirattal, mert a szöveget a felhasználása nélkül ellenőrzik. - A párhuzamos sínek a
|jellel elválasztott alternatívák. - Egy elem fölötti sín lehetővé teszi az átugrását (
?,*,{0,n}). Az alatta lévő, nyíllal ellátott sín visszakanyarodik az ismétléshez (+,*,{n,m}). A szokásostól eltérő darabszámokat a ciklus alatt tünteti fel az eszköz, például „2–5-ször”, a lusta kvantorokat (+?,*?) pedig „lusta” felirattal jelöli.
Hibaüzenetek pozícióval
A mintát a böngésződ saját JavaScript reguláris kifejezés-motorja ellenőrzi, így az eszköz pontosan azt fogadja el, amit a new RegExp() ugyanazokkal a flagekkel. Ha a motor elutasítja a mintát, az eszköz a hibás karakterre mutat a pozíciójával és egy jelölővel a minta alatt. Felismeri a pár nélküli ) jelet, a le nem zárt csoportot, a ] nélküli karakterosztályt, az ismétlendő elem nélküli kvantort (*a, a|+), a záró magányos fordított perjelet és az olyan {n,m} kvantort, amelyben n nagyobb m-nél. A többi hibát, például egy nem létező csoportnévre mutató visszahivatkozást, a böngésző üzenetével mutatja.
A kifejezést csak az érvényesítéshez fordítja le az eszköz: soha nem futtatja semmilyen szövegen, és semmi nem hagyja el a böngésződet.
Gyakori kérdések
Melyik regex-változatot támogatja az eszköz?
A JavaScript (ECMAScript) reguláris kifejezéseit, beleértve a névvel ellátott csoportokat, a lookbehindot, a \p{…} Unicode-tulajdonság escape-eket és a v flaget beágyazott osztályokkal. A PCRE, a Python vagy a Java mintái általában szintén működnek, de az azokra jellemző szintaxist, például a birtokló kvantorokat vagy a (?P<name>…) alakot elutasítja, mert a böngésző nem támogatja.
Miért nincs bekeretezve a nem rögzítő csoportom?
Egy (?:\.[\w-]+) csoport csak azért fog össze elemeket, hogy a kvantor vagy az alternatíva mindegyikre vonatkozzon. Nem hoz létre rögzítést, ezért a diagram keret nélkül mutatja a tartalmát és a ciklusát, ami olvashatóbbá teszi a rajzot. A beágyazott flagekkel rendelkező csoportok keretet kapnak, és a flagekkel feliratozva jelennek meg.
Mi a különbség az átugró sín és a ciklus között?
Az elem fölötti sín azt jelenti, hogy „nullaszor is előfordulhat”, az alatta lévő pedig azt, hogy „ismétlődhet”. A ? csak a felső, a + csak az alsó sínt kapja, a * mindkettőt. Egy {2,4} kvantornál a ciklus „2–4-szer” feliratot visel.
Felhasználhatom a diagramot a dokumentációmban?
Igen. Az SVG-export önálló vektorfájl fehér háttérrel és sötét vonalakkal, ideális README-fájlokhoz, wikikhez és diákhoz. A PNG-export a képernyőn látható rajz kétszeres méretében készül, hogy a nagy pixelsűrűségű kijelzőkön is éles legyen.
Van méretkorlát?
A minták legfeljebb 5000 karakter hosszúak lehetnek. A nagyon hosszú kifejezésekből széles diagram lesz, amelyet vízszintesen görgethetsz; ha névvel ellátott részekre bontod őket, a diagram és a regex is könnyebben karbantartható.
Kapcsolódó eszközök
- Regex-teszter Tesztelj JavaScript reguláris kifejezéseket élőben: kiemelt találatok, rögzítő csoportok, csere és minden elem magyarázata közérthető nyelven.
- JavaScript AST felfedező Illeszd be a JavaScript-kódot, és böngészd az absztrakt szintaxisfáját (ESTree, Acorn) a böngésződben. Kattints a csomópontokra, exportáld JSON-ként.
- JSON formázó és validátor Ingyenes JSON formázó és validátor, amely a böngésződben szépít, tömörít és ellenőriz JSON-t, a szintaxishibákat sor és oszlop szerint jelezve.