Utilia

Regulāras izteiksmes diagramma

Pārvērtiet JavaScript regulāru izteiksmi skaidrā sliežu diagrammā ar grupām, alternatīvām, cikliem un apskatēm, pēc tam eksportējiet to kā SVG vai PNG.

Karodziņi: jebkuri no d g i m s u v y. Varat ielīmēt arī pilnu pierakstu, piemēram, /\d+/g.

Tveršanas grupas
–
Alternatīvas
–
Kvantifikatori
–

Sliežu diagramma

Zils: burtiskais teksts. Zaļš: rakstzīmju veidi un kopas (sarkans: izslēgta kopa). Violets: enkuri un robežas. Oranžs: atsauces uz grupu. Raustītās kastes: grupas un apskates. Ceļš virs elementa to izlaiž, ceļš zem tā atkārto.

Kā vizualizēt regulāru izteiksmi

  1. Ierakstiet vai ielīmējiet izteiksmi laukā Regulāra izteiksme. Varat ielīmēt arī pilnu JavaScript pierakstu, piemēram, /^\d{3}-\d{4}$/gm: slīpsvītras tiek noņemtas, un karodziņi automātiski pāriet uz karodziņu lauku.
  2. Pievienojiet karodziņus, ja tie vajadzīgi (jebkuri no d g i m s u v y). Karodziņi maina dažu daļu zīmējumu: ar m simboli ^ un $ kļūst par „rindas sākums“ un „rindas beigas“; ar s punkts kļūst par „jebkura rakstzīme“.
  3. Diagramma atjaunojas rakstīšanas laikā. Zīmēt diagrammu to pārzīmē pēc pieprasījuma, bet Nākamais piemērs pārslēdz dažas izplatītas izteiksmes (e-pasts, tālruņa numurs, heksadecimāla krāsa, cena, HTML tags, URL).
  4. Lasiet diagrammu no kreisās uz labo, no pilnā punkta līdz punktam ar gredzenu. Katrs ceļš, kuram varat sekot, ir virkne, kurai izteiksme var atbilst.
  5. Izmantojiet Lejupielādēt SVG asam vektoru attēlam (dokumentācijai, prezentācijām), Lejupielādēt PNG attēlam divkāršā izšķirtspējā vai Kopēt SVG kodu, lai ielīmētu marķējumu tīmekļa lapā.

Novietojiet kursoru virs kastes, lai redzētu izteiksmes daļu, no kuras tā rodas, un tās pozīciju.

Kā lasīt sliežu diagrammu

Sliežu diagrammas, ko sauc arī par sintakses diagrammām, apraksta gramatiku kā ceļu kopu. Regulāra izteiksme ir tieši tāda gramatika, tāpēc zīmējums parāda tās struktūru daudz labāk nekā blīva simbolu rinda:

  • Zilās kastes ir burtiskais teksts, kam jābūt tieši tā, kā rakstīts, piemēram, „@“.
  • Zaļās kastes ir rakstzīmju veidi (\d cipars, \w vārda rakstzīme, . jebkura rakstzīme…) un rakstzīmju klases. Klase, piemēram, [\w.+-], kļūst par kasti ar virsrakstu „viens no“, kurā uzskaitīts katrs elements; noliegta klase [^…] ir sarkana ar virsrakstu „neviens no“.
  • Violetās kapsulas ir enkuri un robežas: teksta vai rindas sākums un beigas, \b vārda robeža. Tie atbilst pozīcijai, nevis rakstzīmei.
  • Oranžās raustītās kastes ir atsauces uz grupu, piemēram, \1 vai \k<name>: tas pats teksts, kas jau atbilda iepriekšējai grupai.
  • Raustītie rāmji ir grupas. Tveršanas grupas ir sanumurētas pēc atverošās iekavas secības („grupa #2 „domain““); netveršanas grupas (?:…) netiek ierāmētas. Apskates uz priekšu un atpakaļ saņem rozā rāmi ar uzrakstu „seko“ vai „pirms tam ir“, jo tās pārbauda tekstu, to neizlietojot.
  • Paralēli ceļi ir alternatīvas, kas atdalītas ar |.
  • Ceļš virs elementa ļauj to izlaist (?, *, {0,n}). Ceļš zem ar bultiņu atgriežas, lai to atkārtotu (+, *, {n,m}). Neparasti skaitītāji tiek rakstīti zem cikla, piemēram, „no 2 līdz 5 reizēm“, un slinkie kvantifikatori (+?, *?) tiek atzīmēti kā „slinks“.

Kļūdu ziņojumi ar pozīcijām

Izteiksmi pārbauda jūsu pārlūkprogrammas pašas JavaScript regulāro izteiksmju dzinējs, tāpēc šis rīks pieņem tieši to, ko ar tiem pašiem karodziņiem pieņem new RegExp(). Kad dzinējs izteiksmi noraida, rīks norāda uz vainīgo rakstzīmi ar tās pozīciju un zīmi ^ zem izteiksmes. Tas atpazīst neatbilstošu ), grupu, kas nekad netiek aizvērta, rakstzīmju klasi bez ], kvantifikatoru, kuram nav ko atkārtot (*a, a|+), vientuļu atpakaļvērsto slīpsvītru beigās un {n,m} kvantifikatorus, kuros n ir lielāks par m. Citas kļūdas, piemēram, atsauce uz neesošu grupas nosaukumu, tiek rādītas ar pārlūkprogrammas ziņojumu.

Izteiksme tiek tikai kompilēta, lai to pārbaudītu: tā nekad netiek izpildīta pret kādu tekstu, un nekas neatstāj jūsu pārlūkprogrammu.

Biežāk uzdotie jautājumi

Kuru regex variantu šis rīks atbalsta?

JavaScript (ECMAScript) regulārās izteiksmes, ieskaitot nosauktas grupas, apskati atpakaļ, Unicode īpašību pierakstu \p{…} un v karodziņu ar ligzdotām klasēm. PCRE, Python vai Java izteiksmes parasti arī darbojas, taču šiem dzinējiem raksturīga sintakse, piemēram, īpašnieciskie kvantifikatori vai (?P<name>…), tiek noraidīta, jo pārlūkprogramma to neatbalsta.

Kāpēc mana netveršanas grupa netiek zīmēta kā kaste?

Grupa, piemēram, (?:\.[\w-]+), tikai apvieno elementus, lai kvantifikators vai alternatīva attiektos uz tiem visiem. Tā neveido tveršanu, tāpēc diagramma rāda tās saturu un ciklu bez rāmja, kas uztur zīmējumu lasāmu. Grupas ar iekļautiem karodziņiem tiek ierāmētas un apzīmētas ar šiem karodziņiem.

Kāda ir atšķirība starp izlaišanas ceļu un ciklu?

Ceļš virs elementa nozīmē „nulle reižu ir atļauta“, bet ceļš zem tā – „to var atkārtot“. ? ir tikai augšējais ceļš, + tikai apakšējais, bet * ir abi. Kvantifikatoram, piemēram, {2,4}, cikls nes uzrakstu „no 2 līdz 4 reizēm“.

Vai diagrammu var izmantot manā dokumentācijā?

Jā. SVG eksports ir atsevišķs vektoru fails ar baltu fonu un tumšām līnijām, ideāls README failiem, vikijiem un prezentācijām. PNG eksports tiek renderēts divreiz lielāks nekā ekrāna zīmējums, lai asi attēlotos augsta blīvuma ekrānos.

Vai ir izmēra ierobežojums?

Izteiksmes var būt līdz 5000 rakstzīmēm garas. Ļoti garas izteiksmes rada platu diagrammu, ko var ritināt horizontāli; sadalot tās nosauktās daļās, bieži kļūst vieglāk uzturēt gan diagrammu, gan regex.