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“.
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 |
Kvantifikátory určují, kolikrát se má předchozí znak nebo skupina opakovat.
lo*l najde „ll“, „lol“, „loool“).lo+l najde „lol“, „loool“, ale NE „ll“).
Místo vypisování [0-9] existují předdefinované zkratky:
(abc)+ hledá opakování celé sekvence „abcabc“).kočka|pes najde buď jedno, nebo druhé).
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
Smazání všech komentářů v konfiguračním souboru:
sed -i '/^#/d' config.conf
(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.