Programování. Bc. Veronika Tomsová



Podobné dokumenty

1-Úvod. Automaty a gramatiky(bi-aag) Plán přednášky. 8. Regulární výrazy - aplikace

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

Regulární výrazy. Vzory

Regulární výrazy. jemný úvod. Miloslav Brada

Úvod do UNIXu. Okruh č. 4 - vi, regulární výrazy, grep a sed. Jakub Galgonek. verze r2. inspirováno materiály Davida Hokszy

Programovací jazyk Pascal

Úvod do programování. Lekce 1

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Algoritmizace a programování

Regulární výrazy. Honza Vrbata

more Program se zastaví vždy po vypsání jedné stránky textu. Ukončení Ctrl+C less Umožňuje pohybovat se v souboru dopředu i dozadu.

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Algoritmizace a programování

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Znak Slovy Popis Zdroj Výsledek Formátova cí řetězec v CZ verzi Excelu

2 Formální jazyky a gramatiky

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

VISUAL BASIC. Práce se soubory

Základy jazyka C. Základy programování 1 Martin Kauer (Tomáš Kühr)

Identifikátory označují objekty v programu používané (proměnné, typy, podprogramy).

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Programy na PODMÍNĚNÝ příkaz IF a CASE

B A B A B A B A A B A B B

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

Konečný automat. Jan Kybic.

Sada 1 - PHP. 03. Proměnné, konstanty

Sada 1 - Základy programování

Microsoft. Word. prostředí, základní editace textu. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Algoritmizace a programování

HROMADNÉ ÚPRAVY NAJÍT A NAHRADIT

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Úvod do databázových systémů

DUM č. 5 v sadě. 34. Inf-10 Praktická typografie s LO Writer/MS Word

Programování v jazyce JavaScript

Úvod do databázových systémů

Manuál pro implementaci aplikace Na poštu

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

Výňatek normalizované úpravy písemností ČSN

NPRG030 Programování I, 2016/17 1 / :58:13

Normalizovaná úprava písemností v MS Word

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model

Regulární výrazy a grep

Formální jazyky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 2. března / 32

Přednáška 4. Regulární výrazy. Filtry grep, sed a awk. Úvod do Operačních Systémů Přednáška 4

LEKCE 6. Operátory. V této lekci najdete:

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

63. ročník Matematické olympiády 2013/2014

Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů

UNIVERZITA PARDUBICE ÚSTAV ELEKTROTECHNIKY A INFORMATIKY VYUŽITÍ REGULÁRNÍCH VÝRAZŮ PŘI OPRAVÁCH TEXTU, ÚPRAVÁCH A GENEROVÁNÍ SOUBORŮ BAKALÁŘSKÁ PRÁCE

Soubory. Hung Hoang Dieu. Department of Mathematics Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague 1 / 7

NPRG030 Programování I, 2010/11

Basic256 - úvod do programování Příklady. ing. petr polách

Regulární výrazy v Mergadu

Matematika NÁRODNÍ SROVNÁVACÍ ZKOUŠKY ZADÁNÍ NEOTVÍREJTE, POČKEJTE NA POKYN!

Úloha 3 editor a skripty. připojte se vzdáleně na dray6.feld.cvut.cz heslo získáte na adrese

Úvod do programování 7. hodina

13. Skriptovací jazyk PHP

Výukový materiál zpracován v rámci projektu EU peníze školám

Sekvenční a podmíněné provádění

Obsah. Vymezení použitých pojmů

Normalizovaná úprava písemností ČSN

Skripty - úvod. Linux - skripty 2

Funkce, podmíněný příkaz if-else, příkaz cyklu for

PROGRAMOVÁNÍ V SHELLU

Řešení najdete na konci ukázky

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

PHP tutoriál (základy PHP snadno a rychle)

Formální jazyky a gramatiky Teorie programovacích jazyků

Programování v jazyce JavaScript

Algoritmy I. Číselné soustavy přečíst!!! ALGI 2018/19

Lekce 2. Řetězce a práce s nimi. Vstup a výstup. C2184 Úvod do programování v Pythonu podzim 2016


Prezentace a vysvětlení programového prostředí NXC

KIV/ZIS cvičení 5. Tomáš Potužák

Formátová specifikace má tvar (některé sekce nemají smysl pro načítání) %

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09

Technická dokumentace Ing. Lukáš Procházka

ALGORITMIZACE A PROGRAMOVÁNÍ

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C

Formální jazyky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 21. března / 50

Digitální signály a kódy

Pracovní list č. 7. Microsoft Word 2010 odrážky a číslování. Odrážky

Práce s textem. Třída Character. Třída Character. Třída Character. reprezentuje objekty zapouzdřující hodnotu typu char (boxing / unboxing)

FUNKCE 3. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika

16. Goniometrické rovnice

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

Svobodná chebská škola, základní škola a gymnázium s.r.o. Dělitelnost Rozklad na součin prvočísel. Dušan Astaloš

1.5.7 Znaky dělitelnosti

Normalizovaná úprava písemností ČSN

Konstruktory překladačů

Amos Software Jednoznakové předložky. Co je modul Jednoznakové předložky. Instalace. Zkušební režim. Odemknutí plné funkčnosti

Gymnázium a Střední odborná škola, Chomutovská 459, Klášterec nad Ohří ÚPRAVA SEMINÁRNÍCH PRACÍ

Transkript:

Programování Bc. Veronika Tomsová

Regulární výrazy

Regulární výrazy slouží k porovnání a zpracovaní textu PHP podporuje syntaxi POSIX-Extended Regulární výrazy jsou velice vhodné například k ověření emailové adresy Regulární vyraz je takový výraz, kterému určitý text vyhovuje (true), nebo nevyhovuje (false). 3/31

Speciální znaky (metaznaky) Speciální znaky nezastupují v regulárním výrazu žádné písmenko, nýbrž mají speciální význam 4/31

Znak ^ označuje začátek řetězce Příklad: ^cde Abcde x cdeab Co vyhovuje výrazu? 5/31

Znak $ Označuje konec řetězce Příklad: $cde Abcde x cdeab Co vyhovuje výrazu? 6/31

Znak. (tečka) Zastupuje libovolný znak Příklad: ^.luh$ pluh x dluh x dluhy Co vyhovuje výrazu? 7/31

Znak * označuje opakování předcházejícího znaku nula- a vícekrát Příklad: ^ab*$ a x ab x abb x abbb x aabb Co vyhovuje výrazu? 8/31

Znak + označuje opakování předcházejícího znaku jednou- a vícekrát Příklad: ^ab+$ ab x abb x abbb x a Co vyhovuje výrazu? 9/31

Znak? označuje opakování předcházejícího znaku nula- nebo jedenkrát (nepovinný výskyt) Příklad: ^ab?$ a x aab x ab x abb Co vyhovuje výrazu? 10/31

Znaky { } Závorky {min, max} označují opakování předchozího znaku v rozsahu minimální počet a maximální počet Při neudání maxima je horní hranice neomezena Případně {pocet} přesně udaný počet Příklad: ^ab{1-2}$ ab x abb x abbb x aabb Co vyhovuje výrazu? 11/31

Úkoly Zapište jakým způsobem lze pomocí {} nahradit znaky 1) * 2) + 3)? 12/31

Znaky [] zastupuje jeden znak ze seznamu v závorkách Zapište co je reprezentováno následujícími výrazy: ^a[bcd]$ ^[a-z]*$ ^[a-za-z]*$ ^[a-za-z0-9]*$ ^[1-9]?[0-9]$ 13/31

Znak ^ na začátku seznamu znamená negaci závorky zastupují jeden znak, který není na seznamu Příklad: ^[^0-9] b87b x 87bb Co vyhovuje výrazu? 14/31

Poznámka Jestliže chcete do seznamu přidat znak "^", nesmí být na prvním místě. Naopak znak "-" musí být buď na prvním místě nebo jako pravá mez nějakého intervalu. Znak "]" musí být také jako první hodnota v seznamu (před ním může předcházet pouze znak negace "^"). 15/31

Znak má význam logického OR Používá se ve spojení se znaky () 16/31

Znaky ( ) slouží k seskupení řetězce opakovací značky (*, +,?) se pak vztahují na celý obsah závorky, ne pouze na jeden znak Příklad: ^(abc)*$ abc x abcacb x abcabc Co vyhovuje výrazu? 17/31

Úkoly Co vyhovuje výrazům? 1. ^(b cd)ef$ 2. ^(a b)*c$ 3. (a b) 4. (0 1 2 3 4 5 6 7 8 9) 18/31

Znak \ převádí funkční znaky do nefunkční podoby ^.[$() *+?{\ "\." označuje znak "." "\\" označuje znak "\" 19/31

Kontrola emailové adresy Skládá se ze tří částí - jméno uživatele, zavináč ("@") a jméno serveru Jméno uživatele může obsahovat malá a velká písmena, číslice, tečky ("."), pomlčku ("-") a podtržítko ("_") Stejné znaky kromě podtržítka může obsahovat i jméno serveru Jméno uživatele ani jméno serveru navíc nesmí začínat ani končit tečkou a nikde se nesmí vyskytovat dvě tečky za sebou 20/31

Výraz pro ověření jména ^[_a-za-z0-9-]+$ Tento výraz však zatím nepovoluje tečku. 21/31

Výraz pro ověření jména vč. Tečky ^[_a-za-z0-9-]+(\.[_a-za-z0-9-]+)*$ 22/31

A ještě @ a jméno serveru Ve jméně serveru nesmí být podtržítko ^[_a-za-z0-9-]+ (\.[_a-za-z0-9-]+)* @[a-za-z0-9-]+ (\.[a-za-z0-9-]+)*$ 23/31

Úkol Jak upravíte výraz, pokud předpokládáme, že musí mít server alespoň dvě domény (tedy musí obsahovat alespoň jednu tečku)? 24/31

Úkol Jak upravíte výraz, pokud předpokládáme, že musí mít server alespoň dvě domény (tedy musí obsahovat alespoň jednu tečku)? ^[_a-za-z0-9-]+ (\.[_a-za-z0-9-]+)* @[a-za-z0-9-]+ (\.[a-za-z0-9-]+)+$ 25/31

Úkol Nejsprávnější odpovědí je: ^[a-za-z0-9_\+-]+ (\.[a-za-z0-9_\+-]+)* @[a-za-z0-9-]+ (\.[a-za-z0-9-]+)* \.[a-za-z]{2,4}$ Avšak za nějakou dobu již nemusí být aktuální 26/31

Třídy skupiny znaků přednastavené autory PHP syntaxe je [[:/trida/:]] 27/31

Seznam tříd alnum Písmena anglické abecedy a desítkové číslice alpha Písmena anglické abecedy lower Malá písmena anglické abecedy upper Velká písmena anglické abecedy digit Desítková čísla xdigit Šestnáctková čísla punct Interpunkční znaménka blank Tabulátor a mezera space Prázdné znaky (mezi prázdné znaky se nepočítá \n nový řádek) cntrl Řídící znaky (\n, \t apod.) print Tisknutelné znaky graph Tisknutelné znaky (bez mezery) 28/31

Metaznaky '[[:<:]]' resp. '[[:>:]]' označují začátek resp. konec slova. 29/31

Ukázka V praxi to znamená, že výrazu ^[[:xdigit:]]*$ vyhovuje jakékoliv šestnáctkové číslo 123, 13de8a, abc 30/31

Ukázka Regulárnímu výrazu [[:digit:]]{2} vyhoví řetězec obsahující dvoumístné číslo, tedy např. 54, ale i sdf78fd Častěji však budeme potřebovat zjistit zda řetězec obsahuje osamostatněné číslo, poté použijeme výraz [[:<:]][[:digit:]]{2}[[:>:]] Tomu tedy vyhoví např. řetězce 54 nebo sdf 78 fd. 31/31