Čo je tento nástroj?
Regulárny výraz (regex) je kompaktný jazyk vzorov na vyhľadávanie, validáciu a extrakciu textu: vzor pre e-mail dokáže overiť vstup z formulára, \d{4}-\d{2}-\d{2} nájde dátumy a zachytávacie skupiny vytiahnu presne tie časti, ktoré potrebujete. Regex podporuje takmer každý programovací jazyk a editor.
Tento tester používa JavaScript regex engine — ten istý, ktorý beží v Node.js a v každom prehliadači — takže vzory, ktoré tu vytvoríte, sa správajú identicky vo vašom JavaScript/TypeScript kóde. Väčšina vzorov funguje bez zmien aj v Pythone, Jave a Go.
Prečo ho používať?
- Živá spätná väzba: zhody sa zvýrazňujú žltou farbou hneď, ako píšete vzor.
- Zachytávacie skupiny zobrazené pri každej zhode — presne uvidíte, čo bude obsahovať $1 a $2.
- Plná podpora príznakov: g (všetky zhody), i (ignorovať veľkosť písmen), m (viacriadkový režim), s (bodka zodpovedá aj novému riadku), u (unicode).
- Jasné chybové hlásenia, keď má vzor syntaktickú chybu.
- Zadarmo a súkromne — vzor aj text nikdy neopustia váš prehliadač.
Ako sa používa
- Napíšte svoj vzor medzi dva znaky / (lomítka nemusíte sami escapovať).
- Upravte príznaky v malom poli za druhým / — predvolené g nájde všetky zhody.
- Vložte testovací text nižšie.
- Zhody sa okamžite zvýraznia; zachytávacie skupiny sú vypísané pod nimi.
- Ak je vzor neplatný, chybové hlásenie vysvetlí, čo je zle.
Príklad
Vstup
Vzor: (\w+)@(\w+)\.com
Testovací text: Contact alice@example.com or bob@test.comVýstup
✓ 2 zhody
#1 skupiny: $1=alice $2=example
#2 skupiny: $1=bob $2=testZátvorky vytvárajú zachytávacie skupiny, na ktoré sa môžete odkázať ako $1 a $2 pri nahradení.
Praktické tipy
- Validujete vstup pre e-mail? ^[^\s@]+@[^\s@]+\.[^\s@]+$ je zhovievavý vzor, ktorý zachytí zjavné preklepy bez odmietania platných, no nezvyčajných adries — plná zhoda s RFC 5322 vyžaduje knižnicu, nie jednoriadkový vzor.
- Extrahovanie query parametrov z URL: [?&]([^=]+)=([^&]*) s príznakom g, potom čítajte $1/$2 pri každej zhode namiesto ručného delenia podľa & a =.
- Chystáte sa použiť vzor v .replace()? Otestujte ho najprv tu — čo sa zvýrazní, presne to .replace() zasiahne, vrátane zachytávacích skupín.
- Spracúvate viacriadkové logy (zhoda časovej pečiatky na začiatku každého riadku)? Pridajte príznak m, aby ^ a $ kotvili podľa riadku namiesto celého reťazca.
- Skopírovali ste vzor z Pythonu alebo PHP a tu nefunguje? Skontrolujte pomenované skupiny (?P<name>...) — JavaScript používa (?<name>...), bez P — alebo posesívne kvantifikátory (++, *+), ktoré v JavaScript regexe neexistujú.
JavaScript tester regexu, nie univerzálny
Tento nástroj beží na vstavanom JavaScript RegExp engine — presne tej istej ceste kódu, aká stojí za str.match(pattern) alebo pattern.test(str) v konzole prehliadača alebo Node.js. To je iné než testovanie proti PCRE (čo používa PHP a čo mnohé „univerzálne“ testery regexu berú ako predvolené) alebo Pythonovmu modulu re: JavaScript nemá posesívne kvantifikátory ani atomické skupiny a pomenované zachytávacie skupiny používajú (?<name>...) namiesto (?P<name>...) z PCRE/Pythonu.
Ak sa chystáte nasadiť vzor v JS alebo TypeScripte — validácia formulára, smerovač trás, parser logov — otestovanie tu znamená nulový nesúlad dialektov: čo sa zvýrazní na tejto stránke, je presne to, čo new RegExp(pattern, flags) zhodne za behu.
Kam toto zapadá v reálnych postupoch
Test regexu málokedy stojí samostatne. Bežná postupnosť: overte vzor tu, spustite skutočné .replace() vo vašom kóde a potom porovnajte text pred a po, aby ste sa uistili, že nahradenie urobilo presne to, čo ste čakali, a nič naviac.
Extrakcia štruktúrovaných dát pomocou zachytávacích skupín často priamo pokračuje do JSON — naformátujte extrahovaný výstup a overte, či sa parsoval presne tak, ako ste očakávali.
Časté otázky
Ktorý dialekt regexu tento tester používa?
JavaScript (ECMAScript), engine v každom prehliadači a Node.js. Základná syntax je prenosná, ale niektoré funkcie sa naprieč jazykmi líšia — napríklad podpora lookbehind a syntax pomenovaných skupín sa v Pythone a Jave líši.
Prečo môj vzor nájde len prvú zhodu?
Chýba príznak g (global). Bez g sa regex zastaví po prvej zhode. Tento nástroj má g predvolený — skontrolujte, či ste ho neodstránili.
Prečo . nezodpovedá zalomeniam riadkov?
V predvolenom stave . zodpovedá akémukoľvek znaku okrem nového riadku. Pridajte príznak s (dotall), aby . zodpovedalo aj novým riadkom, alebo použite [\s\S] ako prenosnú alternatívu.
Čo znamenajú výsledky zachytávacích skupín?
Každý pár zátvoriek vo vašom vzore zachytáva text, ktorý mu zodpovedal. $1 je prvá skupina, $2 druhá a tak ďalej — na tieto sa odkazujete pri operáciách nahradenia a extrakčnom kóde.
Prečo je môj regex pomalý alebo zamrzne?
Pravdepodobne ide o katastrofické backtracking, spôsobené vnorenými kvantifikátormi ako (a+)+ na nezhodujúcom sa vstupe. Prepíšte vzor, aby ste sa vyhli nejednoznačnému opakovaniu. Tento nástroj obmedzuje výsledok na 1000 zhôd, aby zostal responzívny.