Seriál Regulární výrazy v PHP (Perl-compatible)
Regulární výrazy jsou mocným nástrojem, který může výrazně zjednodušit a zpřehlednit kód programu. Nejčastěji je můžeme použít při kontrole či &qout;parsování&qout; vstupních dat.
Tuto sérii článků jsem napsal pro Interval.cz (odkazy se otevřou v novém okně).
Pravděpodobně mnozí z vás znají použití zástupných znaků "*" a "?", například při vyhledávání souborů. Jistě uznáte, že použití takových zástupných znaků (wildcards) je často neocenitelné, přesto nemusí být dostačující, pokud chceme postihnout komplikovanější řetězec. Právě k tomu se nám mohou hodit regulární výrazy.
Po úvodním (převážně teoretickém) článku je na čase si ukázat, že to skutečně funguje. Proto si tentokrát předvedeme, jak snadno můžeme zkontrolovat správný zápis telefonního čísla, hesla či URL.
V tomto článku si ukážeme práci se subvýrazy v praxi a seznámíme se s funkcí pro nahrazování řetězců pomocí regulárních výrazů. Použití této funkce budeme demonstrovat na třech praktických příkladech.
Funkčnost regulárních výrazů rozšiřují také takzvané modifikátory, které upravují způsob vyhodnocování regulárního výrazu. Právě modifikátory mohou změnit význam některých metaznaků. Kromě modifikátorů probereme v tomto článku také několik nových konstrukcích pro ukotvování řetězce (nebo jeho částí).
V předchozím článku jsme nakousli téma modifikátorů, a protože modifikátory jsou příliš velkým soustem pro jeden článek, budeme v tomto tématu pokračovat a ukážeme si další čtyři modifikátory.
Kulaté závorky jsme doposud používali pro ohraničení subvýrazů, a to buď proto, že jsme chtěli subvýraz doplnit kvantifikátorem, nebo proto, že jsme se na řetězec odpovídající subvýrazu chtěli odkazovat pomocí zpětné reference. Kulaté závorky se ale v Perl-compatible regulárních výrazech používají také k sestavení speciálních konstrukcí, které ovlivňují chování regulárního výrazu.
Ačkoli jsme se modifikátorům věnovali již ve dvou článcích, vrátíme se k nim i tentokrát a předvedeme si možnost jejich lokálního použití. V druhé části článku pak nahlédneme pod pokličku jedné pokročilé techniky, kterou jsou takzvaná "tvrzení".
V předchozím článku jsme si vysvětlili tvrzení o následujícím (a tvrzení o předcházejícím) a ukázali si jednoduché příklady. Tentokrát se podíváme na příklad z praxe, který ovšem již tak jednoduchý nebude. Budeme testovat platnost registrační značky (bývalé SPZ). V druhé části článku se pak podíváme na zoubek takzvaným podmíněným subvýrazům.
Ve všech předcházejících článcích jsme si při předvádění jednotlivých regulárních výrazů vystačili pouze se dvěma funkcemi. V tomto článku se proto seznámíme s několika dalšími užitečnými funkcemi pro práci s Perl-compatible regulárními výrazy v PHP. Vzhledem k tomu, že vše, co se týče konstrukce regulárních výrazů samotných, bylo již probráno, budu se při popisování jednotlivých příkladů věnovat hlavně funkcím samým.