10 RegEx Tester pro JavaScript, Python, PHP, Golang, Ruby atd.

Základy regulárních výrazů: Průvodce pro začátečníky

Regulární výrazy, občas označované jako RegEx, mohou být na první pohled matoucí. Ale nebojte se, po přečtení tohoto průvodce si osvojíte jejich základy a budete je moci s jistotou používat.

Společně prozkoumáme svět regulárních výrazů a rozklíčujeme na první pohled složitě vypadající sekvence znaků. Naučíme se, co jednotlivé symboly znamenají a jak je kombinovat, abychom dosáhli požadovaných výsledků.

Na konci tohoto článku budete schopni nejen číst regulární výrazy, ale i sami je vytvářet pro různé účely. Kromě toho vám představíme užitečné online nástroje, které vám pomohou s testováním a laděním vašich výrazů.

Co jsou regulární výrazy?

Regulární výraz (RegEx) je v podstatě sekvence znaků, která definuje vzor pro vyhledávání a manipulaci s textem. Je to mocný nástroj pro práci s textovými daty.

Například, pokud potřebujeme zjistit, zda text obsahuje slovo „banán“, použijeme regulární výraz /banán/. Stejně tak výraz /[0-9]/ ověří, zda text obsahuje alespoň jednu číslici od 0 do 9.

Kde se regulární výrazy používají?

Regulární výrazy nacházejí široké uplatnění v moderních webových technologiích. Používají se pro validaci vstupů ve webových formulářích, ve vyhledávačích, v lexikálních analyzátorech v IDE, v textových editorech a dalších aplikacích pro práci s textem.

Každý z nás jistě několikrát použil klávesovou zkratku „Ctrl+F“ k vyhledání slova či fráze v dokumentu. I toto je v podstatě použití jednoduchého regulárního výrazu.

Než se vrhneme na detaily, podívejme se na jeden běžně používaný regulární výraz:

Dokážete uhodnout, k čemu slouží tento RegEx? 🤔

^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$

Pokud ne, nezoufejte! Po prostudování tohoto článku budete schopni tento i jiné výrazy s lehkostí dešifrovat.

Začněme s abecedou regulárních výrazů.

Základní stavební kameny – Tokeny

Podívejme se na jednotlivé symboly, z nichž se skládají regulární výrazy. V následující tabulce si rozklíčujeme tokeny z uvedeného příkladu:

^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$

Regulární výrazy jsou postaveny z mnoha znaků a symbolů, kterým říkáme tokeny. Pojďme si je blíže prozkoumat:

Token Význam
^ Označuje začátek řetězce.
(…) Vytváří skupinu, zachycuje to, co je uvnitř závorek.
[…] Definuje množinu znaků, kde se může objevit kterýkoliv z nich. Např. [abc] odpovídá buď a, nebo b, nebo c.
a-z Malá písmena abecedy od a do z. RegEx rozlišuje velká a malá písmena.
A-Z Velká písmena abecedy od A do Z.
0-9 Číslice od 0 do 9.
_ Odpovídá znaku podtržítko.
\. Odpovídá znaku tečka. Zpětné lomítko před tečkou značí, že tečka nemá speciální význam (odpovídající libovolnému znaku).
+ Kvantifikátor. Odpovídá jednomu nebo více výskytům předchozího znaku. Např. a+ odpovídá jednomu nebo více a.
Odpovídá znaku spojovník.
@ Odpovídá znaku zavináč.
{ } Kvantifikátor. Určuje počet výskytů předchozího znaku. Např. a{3} odpovídá přesně třem a.
$ Označuje konec řetězce.

Rozbor ukázkového RegEx výrazu

S těmito znalostmi se podívejme na náš ukázkový výraz a rozeberme ho krok za krokem:

  • ^([a-zA-Z0-9_-.]+) znamená, že hledáme řetězec, který začíná alespoň jedním znakem, který je alfanumerický (a-z, A-Z, 0-9), podtržítko, spojovník nebo tečka. Příkladem je např. uživatelské_jméno.01. Není nutné zahrnout všechny vyjmenované znaky, stačí jeden z nich.
  • Znak @ odpovídá znaku zavináč. V našem příkladu by se hodilo něco jako [email protected]
  • ([a-zA-Z0-9_-.]+) je obdobný jako první část. Vyhledáváme řetězec, který obsahuje alespoň jeden znak z alfanumerických znaků, podtržítek, spojovníků nebo teček. Např. [email protected]
  • Jak už možná tušíte, definujeme vzor pro e-mailovou adresu. Dalším znakem je \., který odpovídá znaku tečka. Pokud budeme pokračovat, dostaneme se k [email protected].
  • ([a-zA-Z]{2,5})$ znamená, že řetězec by měl končit 2 až 5 abecedními znaky, ať už velkými či malými. Pokud k předchozímu přidáme .cz, vyjde nám [email protected], což je běžný formát e-mailu.

Spojením všech těchto částí získáme regulární výraz pro ověření e-mailové adresy. Můžeme jej použít k validaci, zda je zadaná e-mailová adresa platná.

Důležité: Tento výraz pokrývá nejběžnější formáty e-mailových adres.

Kategorie tokenů

V rámci regulárních výrazů existuje celá řada tokenů, které můžeme různě kombinovat a dosahovat tak komplexních vzorů. Podívejme se na různé kategorie tokenů, počínaje těmi základními.

Základní tokeny

Tyto tokeny se používají prakticky v každém regulárním výrazu, proto je důležité si je osvojit:

Token Význam
\r Odpovídá znaku návratu vozíku.