Kdykoliv potřebujete v textu něco nahradit, najít nebo poupravit, můžete k tomu využít regulárních výrazů. Především u rozsáhlejších textů je jejich používání velice užitečné. Regulární výrazy široké uplatnění v mnoha programovacích jazycích (především skriptovacích jako Python, PHP, Perl, JavaScript). Můžete je ale použít i unixových příkazech (např. grep) nebo v textových editorech (např. Notepad++, Emacs). Regulární výrazy jsou velice bohaté. V našich příkladech shrneme především základní operátory.

Základní vyhledávání

Přejít ke cvičením na toto téma »

Základními prvky regulárních jazyků jsou obyčejná písmena. Ty při vyhledávání odpovídají sami sobě. Pokud tedy zadáme regulární výraz kr, tak mu budou odpovídat slova, která obsahují podřetězec „kr“.

Tečka odpovídá libovolnému znaku.

Metaznaky jsou speciální znaky, které používáme na konstrukci regulárních výrazů (např. .*+?). Co když ale chceme hledat právě tyto znaky? Na to použijeme zpětné lomítko, které ruší význam metaznaku a chápe jej jako znak obyčejný.

Pomocí následujících speciálních znaků můžeme v regulárním výrazu označit skupiny písmen:

[] výběr znaku v závorkách, např. [aeiouy] značí libovolnou z uvedených samohlásek
[ - ] výběr znaku z intervalu, např. [a-z] značí libovolné malé písmeno anglické abecedy
[^ ] negovaný výběr znaku, např. [^aeiouy] značí vše kromě uvedených samohlásek
\d číslice (to samé jako [0-9])
\D vše kromě číslic (to samé jako [^0-9])
\w alfanumerické znaky (to samé jako [a-zA-Z0-9_])
\W vše kromě alfanumerických znaků (to samé jako [^a-zA-Z0-9_])
\s „bílé” znaky (mezera, tabulátor, znaky pro zalomení řádků)
\S vše kromě „bílých” znaků

Dále můžeme využít následující konstrukce, které vymezují více možností, případně seskupují znaky k sobě:

| odděluje několik dílčích výrazů (ahoj|nazdar odpovídá právě jednomu z pozdravů)
() podřetězec, na nějž je možno aplikovat kvantifikátor (ko(ko)?s odpovídá právě kos a kokos)

Kvantifikátory v regulárních výrazech vyznačují, kolikrát se má předcházející výraz opakovat. Například hvězdička v pe*s značí libovolný počet výskytů písmene e.

* libovolný počet opakování
+ jedno nebo více opakování
? volitelný výskyt (~ 0 nebo 1 opakování)
{n} právě n výskytů
{n,m} nejméně n, nejvíce m výskytů

Pomocí následujících speciálních znaků můžeme v regulárním výrazu označit hranice (začátek, konec) slov i celých řetězců:

^ začátek řetězce
$ konec řetězce
\b začátek či konec slova
NAPIŠTE NÁM

Děkujeme za vaši zprávu, byla úspěšně odeslána.

Napište nám

Nevíte si rady?

Nejprve se prosím podívejte na časté dotazy:

Čeho se zpráva týká?

Vzkaz Obsah Ovládání Přihlášení Licence