Regex tester

Testujte regulárne výrazy JavaScriptu na vzorovom texte priamo vo vašom prehliadači.

Vzor
Príznaky
Testovací reťazec
Zvýraznené zhody
Zadajte vzor na otestovanie.

Váš vzor a text sa testujú priamo vo vašom prehliadači. Na servery BroBroGo sa nič neodosiela.

Časté otázky

Je bezpečné sem vložiť môj text?

Áno. Vyhľadávanie zhody prebieha výhradne vo vašom prehliadači – do služby BroBroGo sa nič neodosiela.

Čo znamenajú príznaky g/i/m/s?

Príznak g nájde všetky zhody namiesto iba prvej. Príznak i ignoruje veľkosť písmen. Príznak m spôsobuje, že ^ a $ zodpovedajú začiatku a koncu každého riadku namiesto celého reťazca. Príznak s umožňuje, aby bodka (.) zodpovedala aj koncom riadkov.

Prečo sa zobrazilo hlásenie, že vyhodnotenie môjho vzoru trvá príliš dlho?

Niektoré vzory spúšťajú katastrofálne spätné vyhľadávanie (catastrophic backtracking) – engine skúša exponenciálny počet kombinácií pred tým, než to vzdá, čo môže zamraziť kartu prehliadača. Tento nástroj v takom prípade vyhľadávanie po 2 sekundách zruší, takže samotná stránka nezamrzne. Skúste zjednodušiť vnorené opakovania ako (a+)+.

Testovanie regulárnych výrazov v JavaScripte

Regulárne výrazy (skrátene regex) predstavujú formálny jazyk určený na vyhľadávanie, porovnávanie a manipuláciu s textovými reťazcami. V prostredí webového vývoja sa najčastejšie stretávame s implementáciou regulárnych výrazov podľa špecifikácie jazyka JavaScript. Tento online nástroj umožňuje overiť správnosť zápisu a správanie vašich vzorov priamo na vzorových dátach.

Pri testovaní zadávate dva základné vstupy: samotný vzor a testovací reťazec. Ako predvolený príklad vzoru slúži zápis \d+, ktorý vyhľadáva jednu alebo viac po sebe nasledujúcich číslic. Nástroj okamžite vyhodnocuje zadané údaje a vizuálne odlišuje nájdené výsledky priamo v testovacom texte.

Význam a vplyv príznakov g, i, m, s

Správanie vyhľadávacieho enginu v JavaScripte môžete zásadne ovplyvniť pomocou štyroch základných príznakov (flags):

  • g (Global): Ak tento príznak nie je vybraný, engine vráti iba prvú nájdenú zhodu v texte. Po jeho aktivácii vyhľadávanie pokračuje ďalej a vráti všetky zhody v celom rozsahu textu, pričom limit pre spracovanie je nastavený na maximálne 1 000 zhôd a zobrazenie najviac 100 kariet zhôd.
  • i: Ignoruje rozdiel medzi veľkými a malými písmenami. Vzor tak nájde zhodu pre znaky "A" aj "a" bez nutnosti ich explicitného definovania vo výraze.
  • m (Multiline): Upravuje správanie metaznakov začiatku ^ a konca $ riadku. Namiesto toho, aby zodpovedali iba úplnému začiatku a koncu celého testovacieho reťazca, budú zodpovedať začiatku a koncu každého jednotlivého riadku v texte oddeleného znakom nového riadku.
  • s: Štandardne bodka . zastupuje akýkoľvek znak okrem konca riadku. Aktiváciou tohto príznaku umožníte, aby bodka zahŕňala aj znaky konca riadku, čo zjednodušuje vyhľadávanie vzorov rozprestierajúcich sa cez viacero riadkov.

Interpretácia výsledkov a zachytávacie skupiny

Po vyhodnotení regulárneho výrazu nástroj zobrazí výsledky v dvoch hlavných sekciách:

  1. Zvýraznené zhody: Testovací reťazec s farebne odlíšenými úsekmi textu, ktoré zodpovedajú zadanému vzoru.
  2. Zhody: Detailný zoznam všetkých nájdených výsledkov.

Ak váš regulárny výraz obsahuje zátvorky, napríklad (\d+), definujete tým takzvané zachytávacie skupiny (capture groups). Nástroj tieto skupiny identifikuje a vypíše ich pod označením Skupina {n}, kde {n} predstavuje poradové číslo skupiny v rámci daného vzoru. To je užitočné, ak potrebujete z textu nielen overiť prítomnosť vzoru, ale aj extrahovať konkrétne podreťazce.

Nástroj zobrazuje aj celkový počet nájdených výsledkov vo formáte Zhody: {count} a celkovú dĺžku testovaného textu vyjadrenú ako Znaky. Ak počet nájdených zhôd prekročí limit zobrazenia, systém pripojí upozornenie Zobrazuje sa prvých {max}..

Riešenie chýb a katastrofálne spätné vyhľadávanie

Pri písaní regulárnych výrazov sa môžete stretnúť s chybami v syntaxi alebo s výkonnostnými problémami:

  • Neplatný regulárny výraz.: Toto chybové hlásenie sa zobrazí v prípade, že syntax vášho vzoru nie je správna (napríklad neuzatvorená zátvorka alebo nesprávne umiestnený kvantifikátor).
  • Žiadne zhody.: Zobrazí sa vtedy, ak je syntax v poriadku, ale zadaný vzor sa v testovacom texte vôbec nenachádza.
  • Spustenie tohto vzoru trvá príliš dlho – môže ísť o katastrofálne pomalý výraz. Skúste ho zjednodušiť.: Toto hlásenie indikuje takzvané katastrofálne spätné vyhľadávanie (catastrophic backtracking). K tomuto stavu dochádza vtedy, keď vzor obsahuje nevhodne skombinované a vnorené opakovania (napríklad (a+)+), ktoré nútia engine prehľadávať exponenciálne množstvo kombinácií pri pokuse o nájdenie zhody v nezhodujúcom sa texte. Ak vyhodnotenie trvá viac ako 2 sekundy, nástroj proces automaticky preruší, aby zabránil zamrznutiu vášho webového prehliadača.

Pre vyčistenie všetkých polí a resetovanie stavu môžete použiť tlačidlo Vymazať, ktoré vráti stav Vymazané..

Spracovanie dát a ochrana súkromia

Tento tester pracuje lokálne. Celý proces vyhodnocovania regulárneho výrazu a hľadania zhôd prebieha výhradne vo vašom webovom prehliadači. Váš vzor ani testovací text sa neodosielajú na servery BroBroGo, vďaka čomu zostávajú dáta spracovávané iba na vašom zariadení.


Často kladené otázky

Je bezpečné sem vložiť môj text?

Áno. Vyhľadávanie zhody prebieha výhradne vo vašom prehliadači – do služby BroBroGo sa nič neodosiela.

Čo znamenajú príznaky g/i/m/s?

Príznak g nájde všetky zhody namiesto iba prvej. Príznak i ignoruje veľkosť písmen. Príznak m spôsobuje, že ^ a $ zodpovedajú začiatku a koncu každého riadku namiesto celého reťazca. Príznak s umožňuje, aby bodka (.) zodpovedala aj koncom riadkov.

Prečo sa zobrazilo hlásenie, že vyhodnotenie môjho vzoru trvá príliš dlho?

Niektoré vzory spúšťajú katastrofálne spätné vyhľadávanie (catastrophic backtracking) – engine skúša exponenciálny počet kombinácií pred tým, než to vzdá, čo môže zamraziť kartu prehliadača. Tento nástroj v takom prípade vyhľadávanie po 2 sekundách zruší, takže samotná stránka nezamrzne. Skúste zjednodušiť vnorené opakovania ako (a+)+.