1 / 14

Regulární výrazy

Regulární výrazy. Regulérní výrazy se používají k popsání vzoru uvnitř textu. Například řetězec "škola" odpovídá regulárnímu výrazu "škola", ale také "škol", "kol" a pod. V regulárním výrazu můžeme použít speciální znaky, které nám pomohou popsat vlastnosti hledaného výrazu.

saburo
Download Presentation

Regulární výrazy

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Regulární výrazy • Regulérní výrazy se používají k popsání vzoru uvnitř textu. • Například řetězec "škola" odpovídá regulárnímu výrazu "škola", ale také "škol", "kol" a pod. • V regulárním výrazu můžeme použít speciální znaky, které nám pomohou popsat vlastnosti hledaného výrazu.

  2. Množiny a třídy znaků Tečka nahradí libovolný znak. Např.: ti. - vrátí jako platný řetězec "tis", "tim", "tik"... [a-z] - množina povolených znaků [aeiouy] - množina povolených znaků [a-zA-Z] - množina povolených znaků (velká i malá písmena [^a-z] - množina nepovolených znaků V regulárním výrazu můžeme použít symboly * a +. Symboly se umísťují za výraz. [a-z]+ - nejméně jeden znak z povolených znaků

  3. Předdefinované třídy znaků [[:alnum:]] - čísla [[:alpha:]] - písmena [[:lower:]] - malé znaky [[:upper:]] - velké znaky [[:digit:]] - desítková čísla [[:xdigit:]] - šestnáctková čísla [[:punct:]] - iterpunkce [[:print:]] - všechny tisknutelné znaky [[:graph:]] - všechny tisknutelné znaky s výjimkou mezer [[:blank:]] - tabulátory a mezery [[:space:]] - prázdné znaky [[:cntrl:]] - řídící znaky

  4. Přiřazení počátku a konce řetězce • Symbol stříšky (^) se používá na počátku regulárního výrazu a říká, že se daný výraz musí nalézat na začátku řetězce. • Symbol $ se používá na konci regulárního výrazu a říká, že se daný výraz musí nalézat na konci řetězce. ^blabík - znamená, že se "blabík" bude vyskytovat na začátku řetězce com$ - znamená, že se "com" bude vyskytovat na konci řetězce

  5. Metaznaky v regulárních výrazech

  6. Metaznaky v regulárních výrazech

  7. Metaznaky v regulárních výrazech

  8. Příklad Chceme zjistit, zda je zadaná e-mailová adresa ve správném tvaru a korektní. jméno@doména.národní_doména jméno - může obsahovat velká i malá písmena, číslice a podtržítko, tečku, pomlčku, minimálně jeden znak @ - povinný znak doména - může obsahovat velká i malá písmena, číslice a pomlčku, minimálně jeden znak . - povinný znak národní_doména - může obsahovat velká i malá písmena, tečku, minimálně 2 až 4 znaky

  9. Řešení ^[a-zA-Z0-9\._\-]+@[a-zA-Z0-9\.\-]+\.[a-zA-Z\.]{2,4} Pomlčka a tečka musí být "ocejchovaná" obráceným lomítkem, aby nebyla chápána například jako spojovník.

  10. Vyhledávání řetězce pomocí regulárních výrazů ereg(podřetězec, řetězec, pole) - prochází řetězec a pátrá po zadaném podřetězci. Nalezený řetězec se může uložit do pole eregi(podřetězec, řetězec, pole) - nerozlišuje velikost písmen mb_ereg(podřetězec, řetězec, pole, "utf-8") - prochází řetězec a pátrá po zadaném podřetězci – pro kódování UTF-8 mb_eregi(podřetězec, řetězec, pole, "utf-8") - nerozlišuje velikost písmen – pro kódování UTF-8

  11. Příklad Otestujte e-mailovou adresu zda je platná. blabolil@sosvaz.cz

  12. Řešení <? $email = "blabolil@sosvaz.cz"; if (eregi("^[a-zA-Z0-9\._\-]+@[a-zA-Z0-9\.\-]+\.[a-zA-Z\.]{2,4}", $email)) { echo "Adresa ". $email. " je platná"; exit; } echo "Adresa ". $email. " není platná. Zadejte ji znovu"; ?>

  13. Otázky k opakování • Co jsou to regulární výrazy? • Jakou funkci má v regulárním výrazu znak ^? • Jakou funkci má v regulárním výrazu znak +? • Jakou funkci má v regulárním výrazu znak $? • Co znamená zápis [a-zA-Z]? • Jaká funkce se používá pro vyhledávání řetězce pomocí regulárních výrazů?

  14. Použité zdroje • BLÁBOLIL, R. Informační a komunikační technologie. 3. rozšířené vydání. České Budějovice: KOPP, 2011. str. 407 Použité obrázky: • Vlastní

More Related