CodeKitHub
Textové nástroje

Tester regulárnych výrazov online

Naposledy aktualizované:

Tester regulárnych výrazov vám umožní napísať regulárny výraz a okamžite vidieť, ako sa zhoduje so skutočným textom, so zachytávacími skupinami a príznakmi viditeľnými priebežne počas písania — tento beží na JavaScript engine popísanom v sprievodcovi regulárnymi výrazmi na MDN, rovnakej syntaxi, akú používa Node.js a každý prehliadač. Skvelé na tvorbu a ladenie vzorov pred ich nasadením do kódu.

//

    Č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

    1. Napíšte svoj vzor medzi dva znaky / (lomítka nemusíte sami escapovať).
    2. Upravte príznaky v malom poli za druhým / — predvolené g nájde všetky zhody.
    3. Vložte testovací text nižšie.
    4. Zhody sa okamžite zvýraznia; zachytávacie skupiny sú vypísané pod nimi.
    5. 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.com

    Výstup

    ✓ 2 zhody
    #1 skupiny: $1=alice  $2=example
    #2 skupiny: $1=bob  $2=test

    Zá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.

    Porovnanie textu · JSON Formátovač

    Č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.

    Súvisiace nástroje