Ilmainen muunnin

Regex Testaaja

Testaa ja korjaa säännöllisiä lausekkeita välittömästi selaimessasi. Korosta otteluita, tarkastele kaappausryhmiä ja käytä korvaustilaa – ilmainen ja yksityinen.

//g
Liput:

Tietoa tästä työkalusta

Säännölliset lausekkeet ovat toimialuekohtainen kieli tekstin kuvioiden sovittamiseksi. Ne ovat olleet osa tietojenkäsittelyä vuodesta 1968, ja ne on nyt sisäänrakennettu jokaiseen moderniin ohjelmointikieleen, tekstieditoriin ja komentorivihakutyökaluun. Syntaksi on ytimekäs, mutta virhealtis: pienet muutokset tuottavat hienovaraisesti erilaisen vastaavuuskäyttäytymisen, ja monimutkaiset lausekkeet muuttuvat nopeasti lukukelvottomaksi. Testeri, joka näyttää osumat reaaliajassa, kun muokkaat kuviota, on tehokkain tapa kehittää ja tarkistaa regex.

Tämä testaaja toimii selaimessasi JavaScriptin regex-moottorilla (sama, jota sovelluksesi käyttää, jos se toimii selaimessa). Kuviot ja testiteksti päivittyvät reaktiivisesti: jokainen muutos jompaankumpaan ajaa ottelun uudelleen. Vastaavuusryhmät on korostettu, siepatut ryhmät luetellaan ja liput (kirjainkoolla ei väliä, monirivinen, yleinen) näytetään testausta varten.

Regex-syntaksi vaihtelee hienovaraisesti moottoreiden välillä. JavaScript noudattaa ECMAScript-määrityksiä; Pythonilla, PCRE:llä (PHP ja monien muiden käyttämä), Javalla ja Golla on kullakin omat murteensa, joissa on päällekkäisiä, mutta ei identtisiä ominaisuuksia. Tässä kehitetyt mallit käyttävät ECMAScript-syntaksia; Moottoreiden välinen siirrettävyys edellyttää kunkin kohteen dokumentaation tarkistamista.

Miksi käyttää Regex-testeriä

Regex-virheitä on tunnetusti vaikea korjata käyttöönoton jälkeen. Kohtuulliselta näyttävä kuvio saattaa vastata enemmän tai vähemmän kuin on tarkoitettu, epäonnistua reunatapauksissa tai aiheuttaa katastrofaalisen perääntymisen tietyissä syötteissä. Mallien vuorovaikutteinen testaus edustavaa syötettä vastaan ​​havaitsee ongelmat ennen koodin tarkistusta ja tuotantoa.

Myös mallit hyötyvät dokumentaatiosta. Kun säännöllinen lauseke näytetään syötteen rinnalla, sen pitäisi vastata ja syötettä, jonka sen ei pitäisi vastata, tekee tarkoituksesta selväksi. Tulevat ylläpitäjät (mukaan lukien sinä kuuden kuukauden kuluttua) arvostavat dokumentoituja testitapauksia enemmän kuin älykkäitä yksikerroksisia laitteita.

Käyttöohjeet

Kirjoita kuvio, kirjoita testisyöttö, katso ottelut korostettuina livenä.

  1. Kirjoita mallisi: Kirjoita säännöllinen lauseke malli kuviokenttään. Sekä kirjaimellinen regex (/pattern/flags) että vain mallimuodot toimivat; liput voidaan asettaa lipputulon kautta.
  2. Lisää testisyöttö: Liitä malliteksti, jota kuvion tulee vastata (ja mieluiten myös tekstiä, jonka pitäisi vastata). Testauslaite suorittaa kuvion syötettä vasten ja korostaa osumat.
  3. Aseta liput: Yleiset liput: g (maailmanlaajuinen, etsi kaikki osumat), i (kirjainkoolla ei väliä), m (monirivinen, ^ ja $ vastaa rivin alkua/päättymistä), s (pistemäärä, . vastaa rivinvaihtoja), u (Unicode).
  4. Tarkista tulokset: Jokainen ottelu on korostettu syötteessä. Sieppausryhmät näkyvät luettelossa, jossa on ryhmäindeksi ja arvo. Testaaja näyttää myös osumien määrän ja mahdolliset käännösvirheet kuviossa.

Yleiset käyttötapaukset

Tekniset tiedot

JavaScriptin regex noudattaa ECMAScript-määrityksiä. Tärkeimmät ominaisuudet: merkkiluokat ([abc], [^abc]), kvantisoijat (*, +, ?, {n,m}), vuorottelu (|), ryhmittely ((...)), kaappaavat ja ei-kaappaavat ryhmät, katseet eteenpäin ja taakse (nykyaikaiset moottorit), taustaviitteet, nimetyt ryhmät, Unicode-ominaisuuden poistot (u-merkkijonolla) ja sekvenssit.

Tärkeitä eroja PCRE:hen ja Pythoniin: lookbehind-tuki on hiljattain saatavilla JavaScriptissä (2018+); nimetyt ryhmät käyttävät (?<nimi>...) syntaksia; Jotkut Unicode-pakokoodit vaativat u-lipun toimiakseen oikein. Kieltenväliseen käyttöön tarkoitetut mallit tulee tarkistaa kunkin kohteen dokumentaatiosta.

Suorituskyky: paluupohjaiset regex-moottorit (useimmat sisältävät JavaScriptin) voivat perääntyä katastrofaalisesti tietyissä patologisissa malleissa. Testit, jotka ripustavat testerin, ovat merkki siitä, että kuvio tarvitsee yksinkertaistamista - tyypillisesti välttämällä sisäkkäisiä kvantisoijia ja moniselitteistä vuorottelua.

Parhaat käytännöt

Usein kysytyt kysymykset

Mitä regex-makua tämä työkalu tukee?
Se käyttää JavaScriptin sisäänrakennettua RegExp-moottoria, joka tukee standardisyntaksia, mukaan lukien lookaheads, lookbehinds (nykyaikaisissa selaimissa), nimetyt sieppausryhmät ja Unicode-omaisuuden poistot.
Voinko testata regex-korvauksia?
Kyllä. Vaihda Korvaa-tilaan syöttääksesi vaihtokuvion. Voit käyttää $1:tä, $2:ta jne. sieppausryhmien taustaviittauksille ja $<nimi> nimetyille ryhmille.
Miksi säännöllinen lauseeni täsmää täällä eri tavalla kuin Pythonissa/PHP:ssä?
Eri ohjelmointikielillä on hieman erilaiset regex-moottorit. JavaScript ei tue omistusarvoja tai joitain PCRE-spesifisiä ominaisuuksia. Ydinsyntaksi (merkkiluokat, kvantisoijat, ryhmät) on sama kaikilla kielillä.
Tallentaako työkalu regex-mallini?
Ei. Mitään ei tallenneta tai lähetetä. Työkalu toimii kokonaan selaimessasi. Voit lisätä kirjanmerkkeihin tai jakaa malleja kopioimalla säännöllisen lausekkeen merkkijonon.
Kuinka yhdistän kirjaimellisen erikoismerkin?
Pakene sitä kenoviivalla. Vastaamaan kirjaimellista pistettä: \. Vastaamaan kirjaimellista kenoviivaa: \\. Hahmoluokissa [...] useimmat erikoismerkit menettävät merkityksensä.
Onko testaaja käynnissä palvelimella?
Ei. Kuvioiden kokoaminen ja yhdistäminen tapahtuu selaimessasi käyttämällä alkuperäistä RegExp-objektia.
Voinko testata malleja muille kuin JavaScript-moottoreille?
Enimmäkseen. Yksinkertaisista malleista päämoottorit ovat samaa mieltä. Edistyneiden ominaisuuksien osalta (takaisin katsominen, atomiryhmät, omistusarvot, Unicode-ominaisuuden poistot) vahvista kohdemoottorin dokumentaatiosta.
Käsitteleekö se erittäin suuria syöttöjä?
Jopa muutama megatavu toimii sujuvasti. Suuremmat syötteet voivat hidastaa tai jumittaa selainta, varsinkin jos kuviot ovat alttiita perääntymiselle.