PHP - Část XII. (Regulární výrazy) - Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



PHP

PHP - Část XII. (Regulární výrazy)

11. září 2000, 00.00 | Pokračování seriálu o PHP. Popis regulárních výrazů a jejich použití jako silný nástroj pro spracování textových řetězců.

Regulární výrazy

    Regulární výrazy slouží ke zpracovávání textových řetězců, a to tak, že definujeme masku, které vyhoví jen určité řetězce. Jednodušeji řečeno, regulární výraz je řetězec několika znaků. Textový řetězec pak tomuto regulárnímu výrazu vyhovuje jen tehdy, jestliže obsahuje stejné znaky, které byly definovány v regulárním výrazu. K definování regulárních výrazů se navíc používají tzv. metaznaky, které mají speciální význam. Je jich několik a se všemi se postupně budeme seznamovat v průběhu článku.
    Začneme od začátku, tedy metaznak '^' značí začátek textového řetězce.

Př: regulárnímu výrazu ^aaa vyhoví pouze řetězce, které začínají třemi znaky 'a' např.: aaa nebo aaaxyz atd.

    Opačný metaznak, který značí konec textového řetězce, se zapisuje pomocí znaku '$'. Tento metaznak pracuje stejně jako metaznak předchozí, rozdíl je ale v tom, že se umisťuje na konec. 

Př.: regulárnímu výrazu aaa$ vyhoví pouze řetězce, které končí třemi znaky 'a' např.: aaa nebo xyzaaa atd.

    Mezi další metaznaky patří '.', '*', '+' a '?'. Metaznak tečka ('.') v regulárním výrazu nahrazuje jeden libovolný znak.

Př.: regulárnímu výrazu x.y vyhoví pouze řetězce, které začínají písmenem 'x', končí písmenem 'z' a mezi nimi je ještě jeden libovolný znak např.: xyz nebo xWz atd.

    Metaznaky '*', '+' a '?' určují, kolikrát se má daný výraz opakovat. Metaznak hvězdička ('*') může v regulárním výrazu zastupovat jeden nebo více libovolných znaků, dokonce na tomto místě nemusí být žádný znak. 

Př.: regulárnímu výrazu .* vyhoví jakýkoliv textový řetězec (i prázdný), protože tečka zastupuje libovolný znak a hvězdička říká, že se tento znak může opakovat. 

Oproti tomu metaznak plus ('+') musí v regulárním výrazu zastupovat minimálně jeden znak. 

Př.: regulárnímu výrazu xy+z vyhoví řetězce, které obsahují písmeno 'x', písmeno 'z' a mezi nimi je několik písmen 'y' např.: xyz, xyyyyz ale i abcxyyzzz atd. 

Metaznak otazník ('?') v regulárním výrazu znamená, že se daný výraz může v textovém řetězci vyskytnout jen jednou nebo vůbec. 

Př.: regulárnímu výrazu xy?z vyhoví jen řetězce, které obsahují xyz nebo xz.

    Pokud chceme, aby metaznaky zajišťovaly opakování více znaků za sebou, dáme tyto znaky do obyčejných závorek. Pokud chceme přesně vymezit, kolikrát se mohou dané znaky opakovat, použijeme metaznaky '{' a '}', mezi které napíšeme, kolikrát minimálně a kolikrát maximálně se mohou znaky (nebo znak) opakovat. 

Př.: regulárnímu výrazu x{10, 20} vyhoví pouze řetězce obsahující sekvenci znaků 'x', kterých je min. 10 a max. 20 za sebou. 

Jestliže chceme vymezit pouze minimální počet znaků, použijeme opět tyto dva metaznaky. 

Př.: regulárnímu výrazu x{10,} vyhoví pouze řetězce, které obsahují minimálně 10 znaků 'x' za sebou, maximální počet není omezen. 

Můžeme i určit, kolikrát přesně se musí výraz opakovat. 

Př.: regulárnímu výrazu x{25} vyhoví pouze řetězce, ve kterých se za sebou vyskytuje přesně 25 znaků 'x'.

V příštím článku budeme pokračovat v regulárních výrazech, seznámíme se s funkcemi pro prácí s nimi a ukážeme si možnosti jejich využití.

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » PHP  

 » Rubriky  » Web  

 

 

 

Nejčtenější články
Nejlépe hodnocené články

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: