Regexi testija
Testi JavaScripti regulaaravaldisi otse: esiletõstetud vasted, püüdvad grupid, asendus ja selge selgitus iga mustri elemendi kohta.
| # | Positsioon | Vaste | Grupid |
|---|
Mustri selgitus
Hoiatus: korduv grupp sisaldab teist lõpmatut kordajat, näiteks (a+)+. Selline muster võib peaaegu sobiva teksti korral võtta eksponentsiaalselt aega (katastroofiline tagasiastumine).
Kuidas regexi testijat kasutada
- Kirjuta oma muster lahtrisse Regulaaravaldis, ilma ümbritsevate kaldkriipsudeta. Kaldkriipsud ja aktiivsed lipud kuvatakse välja ümber, nagu
/muster/g. - Märgi vajalikud Lipud:
g(globaalne),i(ignoreeri tõstutundlikkust),m(mitmerealine),s(dotAll),u(unicode) võiy(sticky). - Kleebi otsitav tekst lahtrisse Testtekst. Vasted tõstetakse sisestamise ajal esile ja tabel loetleb iga vaste koos positsiooni ja püüdvate gruppidega.
- Asendamise proovimiseks täida Asendus. Kast Tulemus pärast asendamist näitab teksti, milles iga vaste on asendatud, valmis kopeerimiseks.
- Loe Mustri selgitus, et kontrollida, mida iga regexi osa teeb. Ei tea, kust alustada? Klõpsa Laadi näide.
Mida testija näitab
- Esiletõstetud vasted: iga vaste testtekstis on märgitud, nii et näed ühe pilguga, mis jääb püügile ja mis mitte.
- Vastete tabel: iga vaste number, selle positsioon (märgi nihe algusest, lugedes nullist), sobinud tekst ja iga püüdva grupi väärtus. Nimega grupid, näiteks
(?<year>\d{4}), kuvatakse oma nime all ning grupid, mis vastes ei osalenud, näidatakse kui “(ei sobinud)”. Loetletakse esimesed 1000 vastet. - Asendus: asendustekst kasutab JavaScripti süntaksit:
$1või$2nummerdatud gruppide jaoks,$<name>nimega gruppide jaoks,$&kogu vaste jaoks ja$$literaalse dollarimärgi jaoks. Ilma liputagasendatakse ainult esimene vaste. - Selgitus: muster jagatakse osadeks (otsetekst, märgiklassid, ankrud, grupid, kordajad, ümbrusekontrollid, tagasiviited), igaühel lühike kirjeldus. Pesastatud grupid on taandega, mis teeb pikkade mustrite ülevaatamise palju lihtsamaks.
Lipud lühidalt
| Lipp | Mõju |
|---|---|
g |
Leiab kõik vasted, mitte ainult esimese |
i |
Ei tee vahet suur- ja väiketähtedel |
m |
^ ja $ sobivad iga rea algusega ja lõpuga |
s |
. sobib ka reavahetustega |
u |
Täielik Unicode’i režiim: \u{…}, \p{…} ja emoji käsitletakse üksikute märkidena |
y |
Sticky: iga vaste peab algama täpselt sealt, kus eelmine lõppes |
Katastroofiline tagasiastumine
Mõned mustrid võtavad peaaegu sobiva teksti korral eksponentsiaalselt aega. Klassikaline näide on (a+)+$, mida testitakse pika a-de jada vastu, millele järgneb b: mootor proovib enne alla andmist läbi kõik viisid a-sid kahe kordaja vahel jagada. Seda probleemi, tuntud kui ReDoS, on päris veebilehti maha võtnud.
See tööriist kaitseb sinu brauserit kolmel viisil. Sobitamine töötab taustatöötajas, mis peatatakse 1,5 sekundi pärast; testtekst on piiratud 100 000 märgiga; ja selgitus hoiatab, kui korduv grupp sisaldab teist lõpmatut kordajat. Kui muster aegub, kirjuta see ümber nii, et iga märki saab sobitada ainult ühel viisil, näiteks a+$ asemel (a+)+$.
Korduma kippuvad küsimused
Millist regexi murret see tööriist kasutab?
See kasutab sinu brauseri JavaScripti (ECMAScript) mootorit, täpselt nagu new RegExp() ja String.prototype.replace() sinu koodis. Enamik süntaksit on ühine PCRE, Pythoni ja Javaga, kuid mõned võimalused erinevad: possessiivsed kordajad ja aatomgrupid JavaScriptis puuduvad ning tagasivaatust toetavad kõik praegused brauserid.
Miks mu muster leiab ainult ühe vaste?
Lipp g on väljas. Ilma selleta peatub JavaScript pärast esimest vastet ja asendus muudab ainult seda ühte.
Kuidas sobitada literaalset punkti, nurksulgu või küsimärki?
Kaitse see langkriipsuga: \., \[, \?. Selgitus näitab kaitstud märke kui “(kaitstud)”, nii et saad kontrollida.
Kas minu tekst saadetakse kuhugi?
Ei. Mustrit ja teksti töödeldakse ainult sinu brauseris, mistõttu on see tööriist turvaline logifailide või isikuandmeid sisaldavate andmete jaoks.
Miks erineb positsioon minu redaktori veerust?
Positsioonid loevad märke nullist üle kõigi ridade, nagu JavaScripti match.index. Reavahetus loetakse üheks märgiks ja emoji väljaspool põhimitmekeelset tasandit loetakse kaheks.
Seotud tööriistad
- JSON-i vormindaja ja valideerija Tasuta JSON-i vormindaja ja valideerija, mis kaunistab, minimeerib ja kontrollib JSON-i sinu brauseris ning teatab süntaksivead rea ja veeruga.
- URL-i kodeerija ja dekodeerija Tasuta URL-i kodeerija ja dekodeerija. Kodeeri päringuparameetrid või terved URL-id, dekodeeri %XX jadad ja käsitle + tühikuna. Töötab sinu brauseris.
- Räsigeneraator Loo teksti või mis tahes suurusega failide MD5, SHA-1, SHA-256 ja SHA-512 räsid ning kontrolli kontrollsummasid. Kõik töötab sinu brauseris.