Regulární výrazy
Regulární výrazy jsou velmi mocným nástrojem sloužícím pro práci s textovými daty. Jsou používány v různých programech a textových editorech a v některých shellech. Regulární výrazy v Perlu tvoří jakous nadmnožinu pro všechny tyto prostředky. Znamená to, že jsou podporovány všechny operace, které jsou dostupné ve zmíněných programech (i když se třeba způsob zápisu liší).Silnou stránkou regulárních výrazů v Perlu je široká škála možností, které jsou poskytovány - ne ve všech programových prostředcích pracujících s regulárními výrazy je jich takové množství. Operátory pracující s regulárními výrazy mohou používat modifikátory, které mění zpracování vzoru a ovlivňují vlastní vyhledávání. Jejich chování rovněž závisí na kontextu, v jakém jsou použity. Existuje řada tzv. rozšířených vzorů, které rozšiřují základní možnosti regulárních výrazů nabízející značnou kontrolu nad jejich zpracováním.
Regulární výraz je vzorem, který umožňuje popsat obsah řetězce. Říká, co se v řetězci smí a nesmí vyskytovat, jaký je možný počet těchto výskytů, na jaké pozici v řetězci to má být apod.
Sám o sobě nemá regulární význam smysl. Je užitečný až při porovnání s konkrétním řetězcem. Základní výsledek, kterého porovnáním řetězce a výrazu dosáhneme je informace, zda řetězec vzoru odpovídá, nebo neodpovídá. Porovoavání regulárního výrazu a řetězce se děje vždy pomocí nějakého operátoru. Na typu operátoru závisí, v jaké podobě bude zjištěná informace prezentována. Podle toho, jaký operátor zvolíme, můžeme také s řetězcem provádět další operace — část nalezeného podřetězce zapamatovat, část řetězce odpovídající určitému vzoru nahradit řetězcem jiným apod.
Regulární výrazy se uzavírají do ohraničovacích symbolů operátorů pracujících s regulárními výrazy, někdy jsou zapsány jako obyčejné řetězce v uvozovkách nebo apostrofech. Pro nalezení vzoru v řetězci se používá operátor m / / a pro nahrazení operátor s///. Pro ohraničení vzoru je možné použit i jiných znaků než pouze /.
Se vzorem pro vyhledávání i s řetězci pro nahrazení se obyčejně zachází jako s řetězci v uvozovkách (pokud není jako ohraničovací symbol použit apostrof), takže zde probíhá vkládání hodnot proměnných a některé další znaky zde mají speciální význam.
Přestože jsou regulární výrazy velice silným nástrojem pro zpracování textu, ne vždy musejí být nástrojem nejvhodnějším a to z hlediska rychlosti.
A to by bylo pro dnešek všechno. V dalším díle se podíváme na metaznaky a metasymboly používané s regulárními výrazy v jazyce Perl. V případě jakýchkoliv dotazů mě kontaktujte na email: habrman@banan.cz.
Autor: Robert Habrman