Utilia

Regex-junaratakaavio

Muuta JavaScript-säännöllinen lauseke selkeäksi junaratakaavioksi, jossa näkyvät ryhmät, vaihtoehdot, toistot ja ympäristötarkistukset. Vie SVG- tai PNG-kuvana.

Liput: mikä tahansa merkeistä d g i m s u v y. Voit myös liittää literaalin, kuten /\d+/g.

Kaappausryhmät
–
Vaihtoehdot
–
Toistomääreet
–

Junaratakaavio

Sininen: kirjaimellinen teksti. Vihreä: merkkityypit ja joukot (punainen: poissulkeva joukko). Violetti: ankkurit ja rajat. Oranssi: takaisinviittaukset. Katkoviivalliset ruudut: ryhmät ja ympäristötarkistukset. Kohteen yläpuolinen reitti ohittaa sen, alapuolinen toistaa sen.

Näin visualisoit säännöllisen lausekkeen

  1. Kirjoita tai liitä lauseke kenttään Säännöllinen lauseke. Voit myös liittää kokonaisen JavaScript-literaalin, kuten /^\d{3}-\d{4}$/gm: vinoviivat poistetaan ja liput siirtyvät automaattisesti lippukenttään.
  2. Lisää tarvittaessa liput (mikä tahansa merkeistä d g i m s u v y). Liput vaikuttavat siihen, miten jotkin osat piirretään: lipulla m merkit ^ ja $ muuttuvat muotoon “rivin alku” ja “rivin loppu”, ja lipulla s piste tarkoittaa “mikä tahansa merkki”.
  3. Kaavio päivittyy kirjoittaessasi. Piirrä kaavio piirtää sen uudelleen pyydettäessä, ja Seuraava esimerkki selaa muutamia yleisiä lausekkeita (sähköposti, puhelinnumero, heksaväri, hinta, HTML-tunniste, URL).
  4. Lue kaaviota vasemmalta oikealle täytetystä pisteestä rengastettuun pisteeseen. Jokainen seurattavissa oleva reitti on merkkijono, johon lauseke voi täsmätä.
  5. Lataa SVG antaa terävän vektorikuvan (dokumentaatioon, esityksiin), Lataa PNG kaksinkertaisen tarkkuuden kuvan ja Kopioi SVG-koodi liittämiskelpoisen koodin verkkosivulle.

Vie hiiri ruudun päälle nähdäksesi, mistä lausekkeen osasta se tulee ja missä kohdassa se on.

Näin luet junaratakaaviota

Junaratakaaviot, joita kutsutaan myös syntaksikaavioiksi, kuvaavat kieliopin ratojen joukkona. Säännöllinen lauseke on juuri tällainen kielioppi, joten piirros näyttää sen rakenteen paljon paremmin kuin tiheä symbolirivi:

  • Siniset ruudut ovat kirjaimellista tekstiä, jonka on esiinnyttävä sellaisenaan, esimerkiksi ”@”.
  • Vihreät ruudut ovat merkkityyppejä (\d numero, \w sanamerkki, . mikä tahansa merkki…) ja merkkiluokkia. Luokka kuten [\w.+-] muuttuu ruuduksi, jonka otsikkona on “jokin näistä” ja jossa on jokainen kohta lueteltuna. Kielteinen luokka [^…] on punainen ja sen otsikko on “ei mikään näistä”.
  • Violetit pillerit ovat ankkureita ja rajoja: tekstin tai rivin alku ja loppu sekä sanan raja \b. Ne täsmäävät kohtaan, eivät merkkiin.
  • Oranssit katkoviivaruudut ovat takaisinviittauksia, kuten \1 tai \k<nimi>: sama teksti kuin aiemmin täsmännyt ryhmä.
  • Katkoviivakehykset ovat ryhmiä. Kaappausryhmät numeroidaan avaavan sulun järjestyksessä (“ryhmä #2 ”domain””); kaappaamattomia ryhmiä (?:…) ei kehystetä. Etu- ja takatarkistukset saavat vaaleanpunaisen kehyksen, jossa lukee “perässä on” tai “edellä on”, koska ne tarkistavat tekstiä kuluttamatta sitä.
  • Rinnakkaiset radat ovat pystyviivalla | erotettuja vaihtoehtoja.
  • Kohteen yläpuolinen rata antaa ohittaa sen (?, *, {0,n}). Alapuolinen rata nuolella palaa takaisin ja toistaa sen (+, *, {n,m}). Tavallisista poikkeavat määrät kirjoitetaan silmukan alle, esimerkiksi “2–5 kertaa”, ja laiskat toistomääreet (+?, *?) merkitään sanalla “laiska”.

Virheilmoitukset sijainteineen

Lausekkeen tarkistaa selaimesi oma JavaScriptin säännöllisten lausekkeiden moottori, joten tämä työkalu hyväksyy täsmälleen sen, minkä new RegExp() hyväksyy samoilla lipuilla. Kun moottori hylkää lausekkeen, työkalu osoittaa virheellisen merkin sijainnin ja kohdistimen lausekkeen alla. Se tunnistaa parittoman )-sulun, ryhmän jota ei suljeta, merkkiluokan josta puuttuu ], toistomääreen jolla ei ole mitään toistettavaa (*a, a|+), yksinäisen kenoviivan lopussa sekä {n,m}-toistomääreet, joissa n on suurempi kuin m. Muut virheet, kuten takaisinviittaus olemattomaan ryhmänimeen, näytetään selaimen omalla viestillä.

Lauseke vain käännetään tarkistusta varten: sitä ei koskaan suoriteta millään tekstillä, eikä mikään poistu selaimestasi.

Usein kysytyt kysymykset

Mitä regex-murretta työkalu tukee?

JavaScriptin (ECMAScript) säännöllisiä lausekkeita, mukaan lukien nimetyt ryhmät, takatarkistus, Unicode-ominaisuuslausekkeet \p{…} ja v-lippu sisäkkäisine luokkineen. PCRE-, Python- ja Java-lausekkeet toimivat yleensä myös, mutta näille moottoreille ominainen syntaksi, kuten omistavat toistomääreet tai (?P<name>…), hylätään, koska selain ei tue sitä.

Miksi kaappaamatonta ryhmääni ei piirretä ruutuna?

Ryhmä kuten (?:\.[\w-]+) vain ryhmittelee kohteet, jotta toistomääre tai vaihtoehto koskee niitä kaikkia. Se ei luo kaappausta, joten kaavio näyttää sen sisällön ja silmukan ilman kehystä, mikä pitää piirroksen luettavana. Sisäisillä lipuilla varustetut ryhmät kehystetään ja merkitään näillä lipuilla.

Mitä eroa on ohitusradalla ja silmukalla?

Kohteen yläpuolinen rata tarkoittaa, että “nolla kertaa on sallittu”, ja alapuolinen rata tarkoittaa, että “sen voi toistaa”. Merkillä ? on vain yläreitti, merkillä + vain alareitti ja merkillä * molemmat. Toistomääreelle kuten {2,4} silmukassa lukee “2–4 kertaa”.

Voinko käyttää kaaviota dokumentaatiossani?

Voit. SVG-vienti on itsenäinen vektoritiedosto valkoisella taustalla ja tummilla viivoilla, joka sopii erinomaisesti README-tiedostoihin, wikeihin ja esityksiin. PNG-vienti piirretään kaksinkertaiseen kokoon verrattuna näytön piirrokseen, jotta kuva on terävä korkean pikselitiheyden näytöillä.

Onko koolle rajaa?

Lausekkeet voivat olla enintään 5 000 merkkiä pitkiä. Hyvin pitkät lausekkeet tuottavat leveän kaavion, jota voi vierittää vaakasuunnassa; niiden pilkkominen nimettyihin osiin helpottaa usein sekä kaavion että lausekkeen ylläpitoa.