Regex-prófari
Prófaðu JavaScript-reglulegar segðir í beinni með lituðum samsvörunum, söfnunarhópum, útskiptingu og skýringu á hverju tákni á venjulegu máli.
| # | Staða | Samsvörun | Hópar |
|---|
Skýring á mynstri
Viðvörun: endurtekinn hópur inniheldur annað opið endurtekningartákn, til dæmis (a+)+. Slík mynstur geta tekið veldisvaxandi tíma á texta sem næstum því samsvarar (catastrophic backtracking).
Hvernig á að nota regex-prófarann
- Sláðu mynstrið inn í Regluleg segð, án skástrikanna í kring. Skástrikin og virku flöggin birtast umhverfis reitinn, eins og í
/mynstur/g. - Hakaðu við þau Flögg sem þú þarft:
g(global),i(hunsa há- og lágstafi),m(multiline),s(dotAll),u(unicode) eðay(sticky). - Límdu textann sem á að leita í inn í Prófunartexti. Samsvaranir eru litaðar um leið og þú slærð inn og taflan telur upp hverja samsvörun með stöðu hennar og söfnunarhópum.
- Til að prófa útskiptingu skaltu fylla út Útskipting. Reiturinn Niðurstaða eftir útskiptingu sýnir textann með hverri samsvörun skipt út, tilbúinn til afritunar.
- Lestu Skýring á mynstri til að athuga hvað hver hluti regex-ins gerir. Veistu ekki hvar á að byrja? Smelltu á Hlaða dæmi.
Hvað prófarinn sýnir
- Litaðar samsvaranir: hver samsvörun í prófunartextanum er merkt, þannig að þú sérð í fljótu bragði hvað næst og hvað ekki.
- Samsvörunartafla: númer hverrar samsvörunar, staða hennar (stafabil frá upphafi, talið frá 0), samsvarandi texti og gildi hvers söfnunarhóps. Nefndir hópar eins og
(?<year>\d{4})birtast undir nafni sínu og hópar sem tóku ekki þátt í samsvöruninni eru sýndir sem „(ekki samsvörun)“. Fyrstu 1 000 samsvaranirnar eru taldar upp. - Útskipting: útskiptingartextinn notar JavaScript-málskipan:
$1eða$2fyrir númeraða hópa,$<name>fyrir nefnda hópa,$&fyrir alla samsvörunina og$$fyrir bókstaflegt dollaramerki. Ángflaggsins er aðeins fyrsta samsvörunin skipt út. - Skýring: mynstrið er brotið í tákn (bókstaflegur texti, stafamengi, akkeri, hópar, endurtekningartákn, lookaround, tilvísanir í hópa), hvert með stuttri lýsingu. Hreiðraðir hópar eru inndregnir, sem gerir löng mynstur mun auðveldari í yfirferð.
Flöggin í stuttu máli
| Flagg | Áhrif |
|---|---|
g |
Finnur allar samsvaranir í stað þess að stöðvast við þá fyrstu |
i |
Hunsar muninn á há- og lágstöfum |
m |
^ og $ samsvara upphafi og enda hverrar línu |
s |
. passar líka við línuskil |
u |
Full Unicode-ham: \u{…}, \p{…} og emoji meðhöndluð sem stakir stafir |
y |
Sticky: hver samsvörun verður að byrja nákvæmlega þar sem sú fyrri endaði |
Catastrophic backtracking
Sum mynstur taka veldisvaxandi tíma á texta sem næstum því samsvarar. Klassíska dæmið er (a+)+$ prófað á langri runu af a á eftir b: vélin reynir allar leiðir til að skipta a-unum milli endurtekningartáknanna tveggja áður en hún gefst upp. Þetta vandamál, þekkt sem ReDoS, hefur fellt raunverulegar vefsíður.
Verkfærið ver vafrann þinn á þrjá vegu. Samsvörunin keyrir í bakgrunnsvinnuferli sem er stöðvað eftir 1,5 sekúndur; prófunartextinn er takmarkaður við 100 000 stafi; og skýringin varar þig við þegar endurtekinn hópur inniheldur annað opið endurtekningartákn. Þegar mynstur rennur út á tíma skaltu endurskrifa það þannig að hver stafur samsvari aðeins á einn hátt, til dæmis a+$ í stað (a+)+$.
Algengar spurningar
Hvaða regex-bragð notar verkfærið?
Það notar JavaScript-vél (ECMAScript) vafrans þíns, nákvæmlega eins og new RegExp() og String.prototype.replace() gera í kóðanum þínum. Mest af málskipaninni er sameiginlegt með PCRE, Python og Java, en sumir eiginleikar eru ólíkir: eignarleg endurtekningartákn og atómískir hópar eru ekki til í JavaScript, og lookbehind er stutt í öllum núverandi vöfrum.
Af hverju finnur mynstrið mitt aðeins eina samsvörun?
g flaggið er óvirkt. Án þess stöðvast JavaScript eftir fyrstu samsvörun og útskiptingin breytir aðeins henni.
Hvernig passa ég við bókstaflegan punkt, hornklofa eða spurningarmerki?
Umritaðu það með bakstrik: \., \[, \?. Skýringin sýnir umrituð tákn sem „(umritaður)“ svo þú getir athugað.
Er textinn minn sendur eitthvað?
Nei. Mynstrið og textinn eru aðeins unnin í vafranum þínum, sem gerir verkfærið öruggt fyrir logskrár eða gögn sem innihalda persónuupplýsingar.
Af hverju er staðan önnur en dálkurinn í ritlinum mínum?
Stöður telja stafi frá 0, yfir allar línur, eins og match.index í JavaScript. Línuskil teljast sem einn stafur og emoji utan Basic Multilingual Plane telst sem tveir.
Tengd verkfæri
- JSON-sniðari og sannprófari Ókeypis JSON-sniðari og sannprófari sem fegrar, smækkar og athugar JSON í vafranum, með setningafræðivillum eftir línu og dálki.
- URL-kóðun og afkóðun Ókeypis URL-kóðari og afkóðari. Prósentukóðaðu leitarfæribreytur eða heilar vefslóðir, afkóðaðu %XX-runur og meðhöndlaðu + sem bil, í vafranum.
- Tætigildaframleiðandi Búðu til MD5-, SHA-1-, SHA-256- og SHA-512-tætigildi texta eða skráa af hvaða stærð sem er og staðfestu skráarsummur. Allt keyrir í vafranum þínum.