CodeKitHub
Tekstityökalut

Regex-testeri Verkossa

Viimeksi päivitetty:

Regex-testerillä voit kirjoittaa säännöllisen lausekkeen ja nähdä sen osumat oikeaan tekstiin heti, ryhmineen ja lippuineen näkyvissä kirjoittaessasi — tämä käyttää MDN:n Regular expressions -oppaassa kuvattua JavaScript-moottoria, samaa syntaksia jota Node.js ja jokainen selain käyttävät. Erinomainen kaavojen rakentamiseen ja virheenkorjaukseen ennen niiden viemistä koodiin.

//

    Mikä tämä työkalu on?

    Säännöllinen lauseke (regex) on kompakti kuviokieli tekstin etsimiseen, validointiin ja poimintaan: sähköpostikuvio voi validoida lomakesyötteen, \d{4}-\d{2}-\d{2} löytää päivämääriä, ja sieppausryhmät poimivat tarvitsemasi osat. Lähes jokainen ohjelmointikieli ja editori tukee regexiä.

    Tämä testeri käyttää JavaScript-regex-moottoria — samaa, joka toimii Node.js:ssä ja jokaisessa selaimessa — joten täällä rakennetut kuviot toimivat identtisesti JavaScript-/TypeScript-koodissasi. Useimmat kuviot toimivat myös muuttumattomina Pythonissa, Javassa ja Gossa.

    Miksi käyttää sitä?

    • Live-palaute: osumat korostuvat keltaisella kirjoittaessasi kaavaa.
    • Sieppausryhmät näytetään per osuma — näet tarkalleen, mitä $1 ja $2 sisältävät.
    • Täysi lippujen tuki: g (kaikki osumat), i (ei kirjainkoon erottelua), m (monirivinen), s (piste vastaa rivinvaihtoa), u (unicode).
    • Selkeät virheilmoitukset, kun kaavassa on syntaksivirhe.
    • Ilmainen ja yksityinen — kaava ja teksti eivät koskaan poistu selaimestasi.

    Käyttöohje

    1. Kirjoita kaavasi kahden /-merkin väliin (kenoviivoja ei tarvitse itse paeta).
    2. Säädä lippuja toisen /-merkin jälkeisessä pienessä laatikossa — oletus g löytää kaikki osumat.
    3. Liitä testitekstisi alle.
    4. Osumat korostuvat välittömästi; sieppausryhmät listataan alle.
    5. Jos kaava on virheellinen, virheilmoitus selittää, mikä on vialla.

    Esimerkki

    Syöte

    Kaava: (\w+)@(\w+)\.com
    Testiteksti: Ota yhteyttä alice@example.com tai bob@test.com

    Tuloste

    ✓ 2 osumaa
    #1 ryhmät: $1=alice  $2=example
    #2 ryhmät: $1=bob  $2=test

    Sulut luovat sieppausryhmiä, joihin voit viitata muodossa $1 ja $2 korvauksissa.

    Käytännön vinkkejä

    • Validoitko sähköpostisyötettä? ^[^\s@]+@[^\s@]+\.[^\s@]+$ on salliva kaava, joka nappaa ilmeiset kirjoitusvirheet hylkäämättä kelvollisia mutta epätavallisia osoitteita — täysi RFC 5322 -yhteensopivuus vaatii kirjaston, ei yhtä riviä.
    • Poimitko kyselyparametreja URL-osoitteesta? [?&]([^=]+)=([^&]*) g-lipulla, ja lue sitten $1/$2 per osuma sen sijaan, että pilkkoisit käsin &- ja =-merkkien mukaan.
    • Aiotko käyttää kaavaa .replace()-metodissa? Testaa se täällä ensin — se, mikä korostuu, on täsmälleen se, mihin .replace() koskee, sieppausryhmät mukaan lukien.
    • Jäsennätkö monirivistä lokia (aikaleiman täsmääminen kunkin rivin alusta)? Lisää m-lippu, jotta ^ ja $ ankkuroituvat riveittäin koko merkkijonon sijaan.
    • Kopioitko kaavan Pythonista tai PHP:sta eikä se osu täällä? Tarkista (?P<name>...) -nimetyt ryhmät — JavaScript käyttää muotoa (?<name>...), ei P:tä — tai possessiiviset kvantifikaattorit (++, *+), joita ei ole JavaScript-regexissä.

    JavaScript-regex-testeri, ei yleiskäyttöinen

    Tämä työkalu ajaa JavaScriptin sisäänrakennettua RegExp-moottoria — täsmälleen samaa koodipolkua, joka on str.match(kaava):n tai kaava.test(str):n takana selaimen konsolissa tai Node.js:ssä. Tämä eroaa PCRE:tä (mitä PHP käyttää ja mitä monet "universaalit" regex-testerit oletuksena käyttävät) tai Pythonin re-moduulia vastaan testaamisesta: JavaScriptissä ei ole possessiivisia kvantifikaattoreita eikä atomisia ryhmiä, ja nimetyt sieppausryhmät käyttävät muotoa (?<name>...) PCRE:n/Pythonin (?P<name>...) sijaan.

    Jos olet viemässä kaavaa tuotantoon JS:ssä tai TypeScriptissä — lomakevalidointi, reitin täsmäytys, lokitiedoston jäsennys — sen testaaminen täällä tarkoittaa nollaa murre-eroa: se, mikä tällä sivulla korostuu, on täsmälleen se, mihin new RegExp(kaava, liput) osuu suoritusaikana.

    Mihin tämä sopii oikeissa työnkuluissa

    Regex-testi on harvoin yksinäinen vaihe. Tavallinen järjestys: vahvista kaava täällä, aja varsinainen .replace() koodissasi, ja diffaa sitten teksti ennen ja jälkeen varmistaaksesi, että korvaus teki juuri sen mitä odotit — eikä muuta.

    Jäsennetyn datan poiminta sieppausryhmillä johtaa usein suoraan JSON-muotoon — muotoile poimittu tulos tarkistaaksesi, että se jäsentyi odotetusti.

    Tekstin vertailu · JSON-muotoilija

    Usein kysytyt kysymykset

    Mitä regex-murretta tämä testeri käyttää?

    JavaScript (ECMAScript), jokaisen selaimen ja Node.js:n moottori. Ydinsyntaksi on siirrettävissä, mutta jotkin ominaisuudet eroavat kielten välillä — esim. lookbehind-tuki ja nimettyjen ryhmien syntaksi vaihtelevat Pythonissa ja Javassa.

    Miksi kaavani löytää vain ensimmäisen osuman?

    g-lippu (global) puuttuu. Ilman g:tä regex pysähtyy ensimmäisen osuman jälkeen. Tämä työkalu käyttää oletuksena g:tä — tarkista, ettet ole poistanut sitä.

    Miksi . ei vastaa rivinvaihtoja tekstissäni?

    Oletuksena . vastaa mitä tahansa merkkiä paitsi rivinvaihtoja. Lisää s-lippu (dotall), jotta . vastaa myös rivinvaihtoja, tai käytä [\s\S]:ta siirrettävänä vaihtoehtona.

    Mitä sieppausryhmien tulokset tarkoittavat?

    Jokainen sulkupari kaavassasi siepaa tekstin, johon se osui. $1 on ensimmäinen ryhmä, $2 toinen, ja niin edelleen — näihin viitataan korvausoperaatioissa ja poimintakoodissa.

    Miksi regexini on hidas tai jumittaa?

    Todennäköisesti katastrofaalinen taaksepäin haku, jonka aiheuttavat sisäkkäiset kvantifikaattorit kuten (a+)+ ei-täsmäävällä syötteellä. Kirjoita kaava uudelleen välttääksesi epäselvän toiston. Tämä työkalu rajoittaa 1000 osumaan pysyäkseen responsiivisena.

    Liittyvät työkalut