Preskočiť na obsah

Bezplatný online tester a validátor regulárnych výrazov - Okamžité testovanie vzorov

Testujte a overujte regulárne výrazy online s okamžitým zvýrazňovaním. Bezplatný tester vzorov regulárnych výrazov so syntaktickou validáciou, výsledkami zhody a funkciou ukladania. Otestujte regex teraz!

Tester Regulárnych Výrazov

Výsledky Zhody

Zadajte vzor a testovací text pre zobrazenie výsledkov

Uložiť Vzor

Uložené Vzory

Zatiaľ žiadne uložené vzory

Sprievodca Symbolmi Regulárnych Výrazov

.Zodpovedá akémukoľvek znaku okrem nového riadku
\dZodpovedá akejkoľvek číslici (0-9)
\DZodpovedá akémukoľvek znaku, ktorý nie je číslica
\wZodpovedá akémukoľvek slovnému znaku (a-z, A-Z, 0-9, _)
\WZodpovedá akémukoľvek znaku, ktorý nie je slovný znak
\sZodpovedá akémukoľvek medzernému znaku
\SZodpovedá akémukoľvek znaku, ktorý nie je medzera
^Zodpovedá začiatku riadku
$Zodpovedá koncu riadku
*Zodpovedá 0 alebo viac predchádzajúcich znakov
+Zodpovedá 1 alebo viac predchádzajúcich znakov
?Zodpovedá 0 alebo 1 predchádzajúcemu znaku
{n}Zodpovedá presne n predchádzajúcim znakom
{n,}Zodpovedá aspoň n predchádzajúcim znakom
{n,m}Zodpovedá medzi n a m predchádzajúcimi znakmi
[abc]Zodpovedá ktorémukoľvek znaku v zátvorkách
[^abc]Zodpovedá akémukoľvek znaku, ktorý nie je v zátvorkách
(abc)Zoskupuje viacero tokenov a zachytáva zhodu
a|bZodpovedá buď a alebo b
\bZodpovedá pozícii hranice slova
Kalkulačka načítavania...
📚

Dokumentácia

Čo je tester regulárnych výrazov

Tester regulárnych výrazov je nástroj, ktorý overuje regulárny výraz voči časti textu a zobrazuje, čo zodpovedá vzoru. Regulárny výraz, skrátene regex, je krátka postupnosť znakov opisujúca vzor v texte, napríklad „tri číslice za sebou“ alebo „ľubovoľné slovo začínajúce veľkým písmenom“. Tento validátor regulárnych výrazov umožňuje zadať vzor a skúšobný text a hneď zobraziť zvýraznené zhody bez písania kódu.

Regulárne výrazy sa používajú v mnohých programovacích jazykoch na vyhľadávanie textu, kontrolu správneho formátu používateľského vstupu a získavanie konkrétnych častí z väčšieho bloku textu. Syntax je stručná, ale ľahko sa v nej urobí chyba, preto testovanie vzoru pred použitím v programe pomáha včas odhaliť omyly.

Ako testovať regulárny výraz online

  1. Zadajte vzor. Zadajte regex do poľa vzoru. Nástroj kontroluje syntax počas písania a pri neplatnom vzore zobrazí chybové hlásenie, napríklad ak zostane otvorená hranatá zátvorka alebo okrúhla zátvorka.
  2. Vyberte príznaky. Príznaky menia spôsob použitia vzoru (pozri nižšie).
  3. Zadajte skúšobný text. Zadajte alebo vložte text, v ktorom sa má vyhľadávať, do poľa skúšobného textu.
  4. Prečítajte si výsledky. Zhody sú v texte zvýraznené a nástroj uvedie ich počet. Ak je zadaný skúšobný text, uvedie aj to, či vzor zodpovedá celému textu od začiatku do konca alebo iba jeho časti.
  5. Uložte vzor. Vzor možno uložiť s krátkym označením, aby sa dal neskôr znova použiť. Uložené vzory sa uchovávajú v prehliadači, nie na serveri, takže sa zobrazia iba v tom istom zariadení a prehliadači.
  6. Skopírujte výsledky. Zodpovedajúci text alebo samotný vzor možno jedným kliknutím skopírovať do schránky.

Príznaky regexu

Príznak je jedno písmeno pridané za vzor, ktoré mení jeho správanie. Tento nástroj podporuje štyri príznaky, samostatne alebo v kombinácii:

PríznakNázovÚčinok
gGlobálne vyhľadávanieNájde všetky zhody v texte namiesto zastavenia pri prvej zhode.
iBez rozlišovania veľkých a malých písmenIgnoruje rozdiel medzi veľkými a malými písmenami.
mViacriadkový režimSpôsobí, že ^ a $ zodpovedajú začiatku a koncu každého riadka, nielen začiatku a koncu celého textu. Mení miesto, na ktorom sa hľadajú zhody, nie však kontrolu celého textu opísanú nižšie.
sBodka zodpovedá všetkémuSpôsobí, že . zodpovedá aj znakom nového riadka.

Príznaky možno kombinovať, napríklad gi pre globálne vyhľadávanie bez rozlišovania veľkých a malých písmen alebo gms pre kombináciu globálneho a viacriadkového režimu, v ktorom bodka zodpovedá všetkému.

Ako nástroj vyhľadáva zhody

Vyhľadávač vždy hľadá každý výskyt vzoru v texte, preto sa počítanie zhôd správa, akoby bol zapnutý globálny príznak, aj keď nie je vybraný v rozbaľovacom zozname. Každá zhoda sa zaznamená s pozíciou a dĺžkou, potom sa pôvodný text rozdelí na zhodujúce sa a nezhodujúce sa časti, aby bolo možné zhody zvýrazniť.

Ak chce nástroj overiť, či vzor zodpovedá celému textu, vloží vzor do nezachytávajúcej skupiny a ohraničí ho: ^(?:pattern)$. Zoskupenie je dôležité, pretože | (alternácia) má voľnejšiu väzbu než kotvy. Bez skupiny by vzor ako cat|dog ohraničený zápisom ^cat|dog$ v skutočnosti znamenal „začína sa na cat alebo končí na dog“, čo nie je to isté ako „celý text je cat alebo dog“.

Pri tejto kontrole sa odstráni aj viacriadkový príznak. Ak je nastavený m, ^ a $ zodpovedajú pri každom zalomení riadka, takže ohraničený test by odpovedal na otázku „zodpovedá niektorý riadok?“ namiesto otázky „zodpovedá celý text?“. Nástroj pri tejto kontrole odstráni m a ponechá i a s, pretože tieto dva príznaky menia to, čomu vzor zodpovedá, nie miesto, na ktorom sa nachádzajú kotvy. Odpoveď sa preto vždy vzťahuje na úplný text vrátane zalomení riadkov.

Vyriešený príklad

Vzor: \d+ (jedna alebo viac číslic), príznak: g, skúšobný text: Room 12 has 5 chairs.

  • Nájdené zhody: 12 a 5, takže počet zhôd je 2.
  • Kontrola celého textu: vzor nezodpovedá celému textu, pretože text obsahuje aj písmená a medzery.

Ak sa skúšobný text zmení na 12345, rovnaký vzor zodpovedá celému reťazcu, takže kontrola celého textu oznámi hodnotu true.

Referencia syntaxe regexu

Zhoda znakov

SymbolVýznamPríkladZodpovedá
.Ľubovoľný znak okrem znaku nového riadkaa.c„abc“, „adc“, „a1c“
\dĽubovoľná číslica od 0 do 9\d{3}"123", "456"
\DĽubovoľný znak, ktorý nie je číslica\D+„abc“, „xyz“
\wĽubovoľné písmeno, číslica alebo podčiarkovník\w+„abc123“, „test_123“
\WĽubovoľný znak, ktorý nie je písmeno, číslica ani podčiarkovník\W+"!@#"
\sĽubovoľný prázdny znaka\sb„a b“
\SĽubovoľný znak, ktorý nie je prázdny\S+„abc“

Kotvy pozície

SymbolVýznamPríkladZodpovedá
^Začiatok riadka^abc„abc“ na začiatku riadka
$Koniec riadkaabc$„abc“ na konci riadka
\bHranica slova\bword\b„word“ ako celé slovo

Kvantifikátory

SymbolVýznamPríkladZodpovedá
*Nula alebo viac výskytov predchádzajúcej položkya*b„b“, „ab“, „aab“
+Jeden alebo viac výskytov predchádzajúcej položkya+b„ab“, „aab“
?Nula alebo jeden výskyt predchádzajúcej položkycolou?r„color“, „colour“
{n}Presne n výskytov predchádzajúcej položkya{3}„aaa“
{n,}Aspoň n výskytov predchádzajúcej položkya{2,}„aa“, „aaa“
{n,m}Od n do m výskytov predchádzajúcej položkya{2,4}„aa“, „aaa“, „aaaa“

Množiny znakov a skupiny

SymbolVýznamPríkladZodpovedá
[abc]Ľubovoľný jeden znak uvedený v hranatých zátvorkách[aeiou]ľubovoľná jedna samohláska
[^abc]Ľubovoľný znak, ktorý nie je uvedený v hranatých zátvorkách[^aeiou]ľubovoľný znak, ktorý nie je samohláska
(abc)Zoskupuje znaky a zachytáva zhodu(abc)+„abc“, „abcabc“
a\bZodpovedá a alebo bcat\

Za pozornosť stoja ešte dve funkcie. Pozitívny lookahead, zapisovaný ako a(?=b), zodpovedá „a“ iba vtedy, keď za ním nasleduje „b“, pričom „b“ nezahrnie do zhody. Pozitívny lookbehind, zapisovaný ako (?<=a)b, zodpovedá „b“ iba vtedy, keď nasleduje bezprostredne po „a“.

Bežné príklady vzorov

Tieto vzory možno vložiť do nástroja a sledovať, ako sa správajú voči ukážkovému textu.

Iba číslice: ^\d+$ zodpovedá reťazcu tvorenému výlučne číslicami, napríklad „48210“, a odmietne všetko, čo obsahuje písmeno alebo medzeru.

E-mailová adresa (základná kontrola): ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ zodpovedá adresám v tvare name@domain.tld, napríklad „user@example.com“. Ide o jednoduchú kontrolu, nie o úplný formát e-mailu podľa internetových štandardov, takže niektoré neobvyklé, ale platné adresy jej nevyhovejú.

Telefónne číslo v USA: ^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$ zodpovedá formátom ako „(123) 456-7890“, „123-456-7890“ a „1234567890“.

Dátum vo formáte RRRR-MM-DD: ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$ kontroluje, či je mesiac medzi 01 a 12 a deň medzi 01 a 31. Nekontroluje, či je deň platný pre konkrétny mesiac, takže prijme aj „2024-02-30“, hoci február nikdy nemá 30 dní.

Najčastejšie otázky

Čo je regulárny výraz? Regulárny výraz je postupnosť znakov definujúca vyhľadávací vzor. Používa sa na vyhľadávanie, porovnávanie a úpravu textu vo väčšine programovacích jazykov a textových editorov.

Čo robí globálny príznak? Bez globálneho príznaku sa vyhľadávanie zvyčajne zastaví po prvej zhode. S globálnym príznakom (g) vyhľadávanie pokračuje a oznámi každú zhodu v texte. Tento nástroj pri počítaní zhôd vždy vyhľadáva všetky zhody bez ohľadu na vybraný príznak.

Ako nájdem doslovnú bodku alebo iný špeciálny znak? Umiestnite predň spätnú lomku. Napríklad \. zodpovedá doslovnej bodke namiesto „ľubovoľného znaku“, ktorému zodpovedá neescapovaná ..

Aký je rozdiel medzi .* a .*?? .* je chamtivý a zodpovedá čo najväčšiemu počtu znakov. .*? je lenivý a zodpovedá čo najmenšiemu počtu znakov, pričom zvyšok vzoru sa stále môže zhodovať.

Prečo nástroj uvádza, že text nezodpovedá v celom rozsahu, keď sa zhoduje každý riadok? Kontrola celého textu považuje text za jeden reťazec vrátane zalomení riadkov. Vzor ako \d+ zodpovedá každému riadku 12 a 34 samostatne, ale dva riadky spolu so zalomením medzi nimi nie sú celé tvorené číslicami, takže odpoveď pre celý text je nie. Ak má vzor zodpovedať textu cez viacero riadkov, musí pokrývať aj zalomenia riadkov, napríklad pomocou [\s\S]+.

Ako overím, že celému reťazcu zodpovedá vzor, nielen jeho časti? Na začiatok vzoru pridajte ^ a na koniec $, napríklad ^[0-9]+$ pre reťazec obsahujúci iba číslice.

Zodpovedá tento tester pravidlám regexu v iných programovacích jazykoch? Tento nástroj používa modul regulárnych výrazov zabudovaný v JavaScripte. Väčšina základnej syntaxe, napríklad triedy znakov a kvantifikátory, je spoločná pre jazyky vrátane Pythonu, Javy a Perlu, no niektoré podrobnosti sa líšia, takže vzor, ktorý funguje tu, sa nemusí všade správať úplne rovnako.

Referencie

  1. "Regular expression." Wikipedia, Wikimedia Foundation. https://en.wikipedia.org/wiki/Regular_expression
  2. MDN Web Docs. "Regular expressions." Mozilla. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
  3. Friedl, J. E. F. (2006). Mastering Regular Expressions. O’Reilly Media.