Regex tesztelő
Reguláris kifejezések tesztelése valós minta szövegen, minden találat kiemelésével, teljesen a böngésződben.
Kapcsolódó eszközök
Az eszközről
A reguláris kifejezések azok közé az eszközök közé tartoznak, amelyek az első valódi felhasználásukkor már megtérülnek — legyen szó egy e-mail cím vagy telefonszám formátumának ellenőrzéséről, egy verziószám kiolvasásáról egy log sorból, egy változónév minden előfordulásának megkereséséről átnevezés előtt, vagy máshonnan bemásolt, következetlenül formázott adatok rendbetételéről. A szintaxis viszont sűrű és könnyen el lehet rontani apró részleteiben, ezért éri meg egy pluszperc alatt valós minta szövegen tesztelni a mintát, mielőtt az bekerül a production kódba (vagy egy olyan egyszeri scriptbe, amit egy teljes adathalmazon futtatsz).
Ez az eszköz élőben, gépelés közben futtatja a mintádat a teszt szövegen, és egyszerre mutatja meg az összes találatot, ahelyett hogy találgatnod kellene. A találatok közvetlenül a teszt szövegben vannak kiemelve, így egy pillantással látod, ha a minta ott mohó, ahol nem kellene, hiányoznak belőle bizonyos esetek, vagy többet (vagy kevesebbet) illeszt a szándékoltnál, és minden találat külön is fel van sorolva alul, a pontos pozíciójával és az esetleges csoportjaival együtt.
A három kapcsoló megváltoztatja, hogyan viselkedik a háttérben futó JavaScript regex motor: a kis-/nagybetű érzéketlen ("i") mód egyenértékűvé teszi az "A"-t és az "a"-t, a több soros ("m") mód azt jelenti, hogy a "^" és "$" minden sor elejére és végére illeszkedik, nem csak a teljes szöveg elejére és végére, a sortörésre is illeszkedő pont ("s") mód pedig azt jelenti, hogy a "." a sortörésekre is illeszkedik, ami alapból nem így van. Maga az illesztés mindig gyakorlatilag globális — a szöveg minden előfordulását megkeresi, nem csak az elsőt —, mivel tesztelés közben szinte mindig ez a kívánt viselkedés, még akkor is, ha a "g" kapcsolóra amúgy nem gondolnál külön.
A csoportok — a minta zárójelbe tett részei — lehetővé teszik, hogy egy találatból konkrét részeket emelj ki, ahelyett hogy csak azt erősítenéd meg, hogy az egész illeszkedett, és pontosan erre van szükség, amikor egy dátumot, felhasználónevet vagy query paramétert szeretnél kiolvasni egy nagyobb szövegből. Ez az eszköz minden találatnál megmutatja a csoportokat is a teljes találat mellett, így megbizonyosodhatsz róla, hogy a csoportosítás azt csinálja, amit vársz, mielőtt bedrótoznád egy valódi kinyerő kódba.
Minden a böngésződ natív, szabványos "RegExp" motorjával történik — ugyanazzal, amivel a JavaScript kódod valójában futni fog majd —, így semmi, amit beírsz, nem kerül feltöltésre sehova, és az eszköz az oldal betöltése után internetkapcsolat nélkül is tovább működik. Ha megvan a kívánt találathalmaz, használd a "Küldés" gombot, hogy átadd az eszköztár egy másik eszközének, például egy formázónak vagy egy hosszúságszámlálónak.
Gyakran ismételt kérdések
Miért illeszt az eszköz mindig globálisan, ha nem jelölöm be a "g" kapcsolót? expand_more
Egy minta tesztelésekor szinte mindig azt szeretnéd látni, hogy a szövegben hányszor és hol illeszkedik, nem csak az első előfordulást — ezért ez az eszköz mindig a teljes szöveget átvizsgálja. Az i, m és s kapcsolók ettől függetlenül pontosan úgy módosítják az illesztést, mint a saját kódodban tennék.
Mi a különbség a több soros (m) és a sortörésre is illeszkedő pont (s) kapcsoló között? expand_more
A több soros (m) kapcsoló azt változtatja meg, mihez horgonyoz a ^ és a $ — a teljes szöveg eleje/vége helyett minden egyes sor elejéhez/végéhez. A sortörésre is illeszkedő pont (s) kapcsoló azt változtatja meg, mire illeszkedhet a . — alapból bármilyen karakterre illeszkedik a sortörés kivételével, az s pedig a sortörésre is engedi illeszkedni. A kettő egymástól független, és gyakran összekeverik őket.
Miért jelzi az eszköz érvénytelennek a mintámat? expand_more
Az eszköz egy valódi JavaScript RegExp objektumot épít fel a mintádból és a kapcsolókból, így pontosan ugyanazt a szintaktikai hibát jelzi, amit a saját kódod is kapna — leggyakrabban egy le nem zárt csoportot, egy escapelés nélküli speciális karaktert, vagy egy érvénytelen kapcsoló-kombinációt.
Támogatja ez az eszköz a névvel ellátott (named) csoportokat? expand_more
Igen. Az elnevezett (named) csoportok — például egy csoport "ev" névre keresztelése a pozicionális forma helyett — felismerésre kerülnek, és az értékük a pozicionális csoportok mellett is megjelenik.
Elküldi valahova az eszköz a teszt szövegemet? expand_more
Nem. Az illesztés teljes egészében a böngésződben történik, a böngésző beépített reguláris kifejezés motorjával — semmi nem kerül feltöltésre egy szerverre, és az eszköz az oldal betöltése után offline is tovább működik.