Výpis souhrnů
Regulární výrazy
Podtémata
Regulární výrazy
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 mají š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.
NahoruZákladní vyhledávání
Základními prvky regulárních jazyků jsou obyčejná písmena. Ty při vyhledávání odpovídají přímo 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ý.
Skupiny znaků
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
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 |