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.
Testaa ja korjaa säännöllisiä lausekkeita välittömästi selaimessasi. Korosta otteluita, tarkastele kaappausryhmiä ja käytä korvaustilaa – ilmainen ja yksityinen.
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.
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.
Kirjoita kuvio, kirjoita testisyöttö, katso ottelut korostettuina livenä.
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.