Menu

Regulární výrazy

Velmi pěkný a obsáhlý popis najdete v seriálu o regulárních výrazech od pana Satrapy. Zmínky o Perlu ignorujte, jenom by vás mátly. Tady poskytnu pouze stručný přehled nejdůležitějších bodů syntaxe jak pro základní regulární výrazy, tak pro rozšířené.

Basic RE      Extended RE      význam
.             .                libovolný znak
[a-fxyz]      [a-fxyz]         jeden znak z množiny
[^a-z]        [^a-z]           jeden znak mimo množinu
*             *                libovolný počet opakování (i 0x)
              +                alespoň jedno opakování
              ?                nejvýše jedno opakování
\{n,\}        {n,}             alespoň n opakování
\{n,m\}       {n,m}            alespoň n a nejvýš m opakování
\(...\)       (...)            skupina znaků
\2            \2               obsah 2. zapamatované skupiny
              ab|cd|ef         jedna z alternativ
^             ^                začátek řetězce
$             $                konec řetězce

Pokud má některý ze znaků speciální význam (např. ., [, …) a my chceme hledat jeho normální hodnotu, předřadíme mu zpětné lomítko.

Nástroje

Příkaz grep filtruje řádky odpovídající základnímu regulárnímu výrazu. grep -E, nebo také egrep filtruje řádky odpovídající rozšířenému regulárnímu výrazu.

Textový editor sed filtruje standardně řádky podle základních regulárních výrazů. Rozšířené regulární výrazy můžeme zapnout přepínačem -r.