Výpis souhrnů
Regulární výrazy
Prohlížíte si souhrny informací k určitým tématům. Systémy Umíme se zaměřují hlavně na jejich procvičování. Ke cvičením k jednotlivým podtématům se dostanete pomocí odkazů níže.
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 |