CodeKitHub
Szöveges eszközök

Regex Tesztelő Online

Utolsó frissítés:

Egy regex tesztelővel megírhatsz egy reguláris kifejezést, és azonnal láthatod, hogyan illeszkedik valódi szövegre, a capture groupokkal és flagekkel gépelés közben láthatóvá válva — ez a MDN Reguláris kifejezések útmutatójában leírt JavaScript motort futtatja, ugyanazt a szintaxist, amelyet a Node.js és minden böngésző használ. Kiváló minták építéséhez és hibakereséséhez, mielőtt kódba illesztenéd őket.

//

    Mi ez az eszköz?

    A reguláris kifejezés (regex) egy tömör mintanyelv szöveg kereséséhez, validálásához és kinyeréséhez: egy e-mail-minta validálhat egy űrlapmezőt, a \d{4}-\d{2}-\d{2} dátumokat talál, és a capture groupok kihúzzák a szükséges részeket. Szinte minden programnyelv és szerkesztő támogatja a regexet.

    Ez a tesztelő a JavaScript regex motort használja — ugyanazt, amely a Node.js-ben és minden böngészőben fut —, így az itt épített minták pontosan ugyanúgy viselkednek a JavaScript/TypeScript kódodban. A legtöbb minta változatlanul működik Pythonban, Java-ban és Go-ban is.

    Miért érdemes használni?

    • Élő visszajelzés: az egyezések sárgával kiemelődnek, ahogy gépeled a mintát.
    • A capture groupok egyezésenként megjelennek — pontosan láthatod, mit fog tartalmazni a $1 és a $2.
    • Teljes flag támogatás: g (összes egyezés), i (kis/nagybetű figyelmen kívül hagyása), m (többsoros), s (a pont illeszkedik az újsorra is), u (unicode).
    • Világos hibaüzenetek, ha a mintában szintaktikai hiba van.
    • Ingyenes és privát — a minta és a szöveg soha nem hagyja el a böngésződet.

    Használati útmutató

    1. Írd be a mintádat a két / karakter közé (nem kell magadnak escape-elned a perjeleket).
    2. Állítsd be a flageket a második / utáni kis mezőben — az alapértelmezett g minden egyezést megtalál.
    3. Illeszd be a teszt szövegedet alább.
    4. Az egyezések azonnal kiemelődnek; a capture groupok alul kerülnek felsorolásra.
    5. Ha a minta érvénytelen, a hibaüzenet elmagyarázza, mi a probléma.

    Példa

    Bemenet

    Minta: (\w+)@(\w+)\.com
    Teszt szöveg: Elérhetőség: alice@example.com vagy bob@test.com

    Kimenet

    ✓ 2 egyezés
    #1 groupok: $1=alice  $2=example
    #2 groupok: $1=bob  $2=test

    A zárójelek capture groupokat hoznak létre, amelyekre $1 és $2 formában hivatkozhatsz cserékben.

    Gyakorlati tippek

    • E-mail beviteli mezőt validálsz? A ^[^\s@]+@[^\s@]+\.[^\s@]+$ egy megengedő minta, amely elkapja a nyilvánvaló elgépeléseket, anélkül hogy elutasítaná az érvényes, de szokatlan címeket — a teljes RFC 5322 megfelelőséghez könyvtár kell, nem egysoros kifejezés.
    • Lekérdezési paraméterek kinyerése egy URL-ből: [?&]([^=]+)=([^&]*) a g flaggel, majd olvasd ki a $1/$2-t egyezésenként ahelyett, hogy kézzel bontanál a & és = mentén.
    • Egy mintát fogsz használni a .replace()-ben? Teszteld itt előbb — amit kiemel, pontosan az, amit a .replace() módosítani fog, a capture groupokat is beleértve.
    • Többsoros naplókat elemzel (egy időbélyeg illesztése minden sor elején)? Add hozzá az m flaget, hogy a ^ és $ soronként horgonyozzon, ne a teljes szövegre.
    • Egy mintát másoltál Pythonból vagy PHP-ből, és itt nem illeszkedik? Ellenőrizd a (?P<name>...) nevezett groupokat — a JavaScript a (?<name>...) formát használja, P nélkül —, vagy a birtokos mennyiségjelölőket (++, *+), amelyek nem léteznek a JavaScript regexben.

    JavaScript regex tesztelő, nem egy általános

    Ez az eszköz a JavaScript beépített RegExp motorját futtatja — pontosan azt a kódútvonalat, amely a str.match(pattern) vagy a pattern.test(str) mögött áll egy böngészőkonzolban vagy Node.js-ben. Ez különbözik a PCRE-vel (amit a PHP használ, és amelyre sok "univerzális" regex tesztelő alapértelmezetten épít) vagy a Python re moduljával szembeni teszteléstől: a JavaScriptben nincsenek birtokos mennyiségjelölők vagy atomi groupok, és a nevezett capture groupok a (?<name>...) formát használják a PCRE/Python (?P<name>...) formája helyett.

    Ha egy mintát készülsz JS-be vagy TypeScriptbe elküldeni — űrlapvalidálás, útvonal-illesztő, naplóelemző —, itt tesztelve nulla eltérés lesz a viselkedésben: amit ez az oldal kiemel, pontosan az, amire a new RegExp(pattern, flags) futásidőben illeszkedik.

    Hol illeszkedik ez a valós munkafolyamatokba

    Egy regex teszt ritkán áll önmagában. A szokásos sorrend: erősítsd meg itt a mintát, futtasd le a valódi .replace()-t a kódodban, majd hasonlítsd össze az előtte/utána szöveget, hogy megbizonyosodj róla, a csere pontosan azt tette, amit vártál, és semmi mást.

    A capture groupokkal kinyert strukturált adatok gyakran közvetlenül JSON-ba kerülnek — formázd a kinyert kimenetet, hogy ellenőrizd, a várt módon dolgozódott-e fel.

    Szöveg-összehasonlítás · JSON Formázó

    Gyakori kérdések

    Melyik regex-változatot használja ez a tesztelő?

    A JavaScript (ECMAScript) motort, amely minden böngészőben és a Node.js-ben megtalálható. Az alapszintaxis hordozható, de néhány funkció eltér a nyelvek között — pl. a lookbehind támogatás és a nevezett group szintaxisa eltér Pythonban és Java-ban.

    Miért csak az első egyezést találja meg a mintám?

    Hiányzik a g (global) flag. A g nélkül a regex az első egyezés után leáll. Ez az eszköz alapértelmezetten g-t használ — ellenőrizd, hogy nem távolítottad-e el.

    Miért nem illeszkedik a . a sortörésekre?

    Alapértelmezetten a . bármilyen karakterre illeszkedik az újsorok kivételével. Add hozzá az s flaget (dotall), hogy a . az újsorokra is illeszkedjen, vagy használd a [\s\S]-t hordozható alternatívaként.

    Mit jelentenek a capture group eredmények?

    A mintádban minden zárójelpár rögzíti azt a szöveget, amire illeszkedett. A $1 az első group, a $2 a második, és így tovább — ezekre hivatkozol csere-műveletekben és kinyerő kódban.

    Miért lassú vagy fagy le a regexem?

    Valószínűleg katasztrofális visszalépés (backtracking), amelyet olyan beágyazott mennyiségjelölők okoznak, mint az (a+)+, nem illeszkedő bemeneten. Írd át a mintát a kétértelmű ismétlés elkerülésére. Ez az eszköz 1000 egyezésnél korlátozza a találatokat, hogy reszponzív maradjon.

    Kapcsolódó eszközök