Obsah

Regulární výrazy (Regex)

Regex je posloupnost znaků, která tvoří vyhledávací vzor. Umožňuje definovat velmi komplexní pravidla – například „najdi všechna slova, která začínají velkým písmenem, obsahují aspoň jedno číslo a končí tečkou“.

1. Základní stavební kameny (Metaznaky)

Metaznaky jsou speciální symboly, které nemají doslovný význam, ale určují logiku hledání.

Znak Význam Příklad
. Jakýkoliv jeden znak (kromě nového řádku). a.c najde „abc“, „a1c“, „a!c“
^ Začátek řádku. ^Ahoj najde „Ahoj“ pouze na začátku
$ Konec řádku. konec$ najde „konec“ pouze na konci
[ ] Množina znaků (výčet). [aeiou] najde jakoukoli samohlásku
[^ ] Negativní množina (vše kromě). [^0-9] najde cokoli, co není číslice
\ Escapování (zrušení speciálního významu). \. najde skutečnou tečku

2. Kvantifikátory (Určení počtu)

Kvantifikátory určují, kolikrát se má předchozí znak nebo skupina opakovat.

3. Třídy znaků a zkratky

Místo vypisování [0-9] existují předdefinované zkratky:

4. Seskupování a logické OR

5. Praktické příklady ze světa IT

Validace e-mailu (zjednodušená)

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

Vyhledání IP adresy

\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b

Úprava v příkazu sed

Smazání všech komentářů v konfiguračním souboru:

(Najdi řádky začínající ^ mřížkou # a smaž je d.)

Zajímavost: Existuje slavný citát Jamieho Zawinského: „Někteří lidé, když se setkají s problémem, si pomyslí: 'Já vím, použiji regulární výrazy.' Teď mají problémy dva.“ To odkazuje na fakt, že špatně napsaný regex může být velmi nepřehledný a těžko se v něm hledají chyby.

Zpět na Linux