Vježba 2 Regularni izrazi I (eng. regex)

Podobne dokumenty
Baze podataka (vježbe) SQL - uvod i osnove naredbe SELECT. Sveučilište u Zagrebu PMF Matematički odsjek

Neprekidnost i limes. Definicija. Neka je I R otvoreni interval i c I. Funkcija. f : I {c} R

1. UVOD U TEORIJU FORMALNIH JEZIKA

PARCIJALNE DIFERENCIJALNE JEDNAČINE. , odnosno

0. OSNOVE

Darko Drakulić. Osnove programskog jezika C sa zbirkom zadataka -skripta-

Hotellingova T 2 statistika. Mia Franić 6. srpnja 2016.

Hufce 2.3. Podanie do wiadomości wyników wyborów

token DOT WORD dve vrednosti

I 3 + d l a : B E, C H, C Y, C Z, ES, F R, G B, G R, I E, I T, L T, L U V, P T, S K, S I

BAZE PODATAKA. Neđeljko Lekić.

Rozdział 1. Nazwa i adres Zamawiającego Rozdział 2. Informacja o trybie i stosowaniu przepisów Rozdział 3. Przedmiot zamówienia

Rozdział 1. Nazwa i adres Zamawiającego Gdyński Ośrodek Sportu i Rekreacji jednostka budżetowa Rozdział 2.

doi: /onis A stra t , m. 350 Ogrody Nauk i Sztuk nr 2017 (7)

dt dt 2 2t = 3 (1 + t). y (x) = x. ] b) x = sin 2 t, y = cos 2 t [ 1 ] c) x = e 2t cos 2 t, y = e 2t sin 2 t [ tg t tg (t + π/4) ]

Zaawansowany kurs języka Python







Podstawy programowania w Pythonie

Kurs rozszerzony języka Python

Kurs języka Python Wykład 8. Przetwarzanie tekstu Wyrażenia regularne Biblioteka urllib Parsowanie html'a XML

Rozdział 1. Nazwa i adres Zamawiającego Gdyńskie Centrum Sportu jednostka budżetowa Rozdział 2. Informacja o trybie i stosowaniu przepisów

PIERWIASTKI W UKŁADZIE OKRESOWYM

Kurs języka Python Wykład 6. Pliki tekstowe Pliki rekordów Pliki CSV Strumienie

Opis i zakres czynności sprzątania obiektów Gdyńskiego Centrum Sportu

Przedmiotowy Konkurs Informatyczny LOGIA powołany przez Mazowieckiego Kuratora Oświaty






PLNOG#10 Hadoop w akcji: analiza logów 1

Pojam matrice je, neovisno o primjenama, uveden potkraj 19. st., a povezuje se s imenima J.J. Sylvester-a i A. Cayley-a;


Programowanie funkcyjne w Pythonie

Rozdział 1. Nazwa i adres Zamawiającego Gdyńskie Centrum Sportu jednostka budżetowa Rozdział 2. Informacja o trybie i stosowaniu przepisów

Opakowania na materiały niebezpieczne

Zaawansowany kurs języka Python

Wykresy i interfejsy użytkownika

Przedmiotowy Konkurs Informatyczny LOGIA powołany przez Mazowieckiego Kuratora Oświaty

Liturgia eucharystyczna. Modlitwa nad darami œ

Dzi kuj za uwag! Spotkania z Pythonem. Cz ± 1 - podstawy - rozwi zania zada« Michaª Alichniewicz. Gda«sk Studenckie Koªo Automatyków SKALP

Język Python (2) Język Python (2) 1/36

0.1 Hierarchia klas Diagram Krótkie wyjaśnienie

HR Ujedinjena u raznolikosti HR A8-0205/224

Kurs rozszerzony języka Python

SPECYFIKACJA ISTOTNYCH WARUNKÓW ZAMÓWIENIA

SPECYFIKACJA ISTOTNYCH WARUNKÓW ZAMÓWIENIA

Algoritmi i strukture podataka

Kurs języka Python. Wykład 5. Marcin Młotkowski. 9 listopada Rodzaje parametrów funkcji. 2 Biblioteka Tk. 3 Układanie kontrolek w oknie

Kurs języka Python. Wykład 11. Marcin Młotkowski. 4 stycznia Kontrola poprawności podczas biegu programu. 2 Testowanie oprogramowania

Programowanie w Sieci Internet. Python: Operacje z plikami oraz obsługa wyjątków

SPECYFIKACJA ISTOTNYCH WARUNKÓW ZAMÓWIENIA

Bash - wprowadzenie. Bash - wprowadzenie 1/39

SCS81800F0 HRUpute za uporabu 2 CS Návod k použití 19 PL Instrukcja obsługi 36 SK Návod na používanie 54

Pytania dla języka Python

BAZE PODATAKA. Neđeljko Lekić.

Gdyńskim Ośrodkiem Sportu i Rekreacji jednostka budżetowa


Rozkaz L. 7/ Kary organizacyjne 11. Odznaczenia Odznaczenia harcerskie

o d ro z m ia r u /p o w y ż e j 1 0 c m d ł c m śr e d n ic y 5 a ) o ś r e d n ic y 2,5 5 c m 5 b ) o śr e d n ic y 5 c m 1 0 c m 8

T00o historyczne: Rozwój uk00adu okresowego pierwiastków 1 Storytelling Teaching Model: wiki.science-stories.org , Research Group

BAZE PODATAKA. Model Objekti/Veze. Neđeljko Lekić. Dr. Peter Chen

Ludzkie gadanie. & b4 > > & b. с j j > j j. j w w. w w b. q=120. Soprano. Soprano. Alto. Tenor. Bass. Tu mp. tu tut tu tu tu.

EGZAMIN MATURALNY Z INFORMATYKI

Gdyńskim Ośrodkiem Sportu i Rekreacji jednostką budżetową Zamawiającym Wykonawcą

Liturgia eucharystyczna. Modlitwa nad darami œ

1. Podstawy budowania wyra e regularnych (Regex)

Wątki i komunikacja między nimi w języku Python

OŚWIADCZENIE MAJĄTKOWE

Chemia nieorganiczna. Copyright 2000 by Harcourt, Inc. All rights reserved.

System operacyjny Linux

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

3. Biblioteka standardowa Pythona

PROGRAM WSPIERANIA ODDOLNYCH INICJATYW ARTYSTYCZNYCH, KULTURALNYCH I SPOŁECZNYCH WE WROCŁAWIU

Chemia nieorganiczna. Pierwiastki. niemetale Be. 27 Co. 28 Ni. 26 Fe. 29 Cu. 45 Rh. 44 Ru. 47 Ag. 46 Pd. 78 Pt. 76 Os.

Rozdział 1. Nazwa i adres Zamawiającego Gdyński Ośrodek Sportu i Rekreacji jednostka budżetowa Rozdział 2.

Przegląd języka Python. Łukasz Anwajler

PLAN POŁĄCZENIA SPÓŁEK

Ćwiczenie 3. Python 3: Python 3: Funkcje, moduły i operacje na plikach

kszta to aniu ono o z sn go kanonu i kna

MATEMATIČKA ANALIZA 2

Kurs rozszerzony języka Python


Gdyńskim Ośrodkiem Sportu i Rekreacji jednostka budżetowa

Instrukcja obiegu i kontroli dokumentów powodujących skutki finansowo-gospodarcze w ZHP Spis treści

Języki i metody programowania

Wynagrodzenia informatyków w 2015 roku - zaproszenie do badania

Funkcje są prawdopodobnie najważniejszą częścią każdego poważnego programu (w każdym języku programowania).

Środowisko programisty

Rozdział 1. Nazwa i adres Zamawiającego Gdyński Ośrodek Sportu i Rekreacji jednostka budżetowa Rozdział 2.

Python. Wprowadzenie. Jolanta Bachan

znaleźć wszystkie rekordy dotyczące adresów przy ulicy Hożej (dowolnego miasta!);

Zastosowanie metod statystycznych do problemu ujednoznaczniania struktury zdania w języku polskim

Transkrypt:

Ponavljanje: tipovi podataka i funkcije Funkcija za provjeru regex-a REGEX Funkcije search() i match() Kvantifikatori Klase/razredi uzoraka Uvod u skupine (grupe) uzoraka Domaća zadaća Rad s regularnim izrazima Vježba 2 Regularni izrazi I (eng. regex) 2.1 Ponavljanje: tipovi podataka i funkcije 2.1.1 Funkcija za provjeru regex-a Neka je zadan Python program koji se sastoji od funkcije test_re() koja služi za provjeru regularnih izraza i njihov pregledan ispis, te programskog odsječka u nastavku programa, koji poziva tu funkciju i provjerava djelovanje skraćenih kodova kao probnih uzoraka regularnog izraza. Program 2.1 test regex. 1 ## Uvod u REGULARNE IZRAZE 2 3 import re 4 5 ## FUNKCIJA ZA TESTIRANJE 6 def test_re(txt,uzorci=[]): 7 u"""program za provjeru regularnih izraza 8 niz regularnih izraza pi²e se u listi, 9 a dopu²ten je i komentar 10 """ 11 for uzorak,opis in uzorci: 12 print("\n") 13 print('=> Uzorak %s (%s)' % (uzorak,opis)) 14 print(' %r' % txt) 15 for nasli in re.finditer(uzorak, txt): 16 s=nasli.start() 17 e=nasli.end() 18 nasli = txt[s:e] 19 n_kosih = txt[:s].count('\\') 20 prefix = '.' * (s + n_kosih) 21 print(' %s%r' % (prefix,nasli)) 22 return 23 24 ## SKRA ENI KODOVI 25 print('** SKRA ENI KODOVI **') 26 test_re(

14 Regularni izrazi I (eng. regex) 27 'Ovo je #1 primjer!', 28 [ (r'\d+', 'niz znamenki'), 29 (r'\d+', 'niz ne-znamenki'), 30 (r'\s+', 'niz praznina'), 31 (r'\s+', 'niz ne-praznina'), 32 (r'\w+', 'alfanumeri ki znakovi'), 33 (r'\w+', 'ne-alfanumeri ki znakovi'), 34 ]) Pokretanjem programa dobije se sljedeći ispis na zaslonu: Zaslon 2.1 ** SKRA ENI RE-KODOVI ** => Uzorak \d+ (niz znamenki) 'Ovo je #1 primjer!'...'1' => Uzorak \D+ (niz ne-znamenki) 'Ovo je #1 primjer!' 'Ovo je #'...' primjer!' => Uzorak \s+ (niz praznina) 'Ovo je #1 primjer!'...' '...' '...' ' => Uzorak \S+ (niz ne-praznina) 'Ovo je #1 primjer!' 'Ovo'...'je'...'#1'...'primjer!' => Uzorak \w+ (alfanumeri ki znakovi) 'Ovo je #1 primjer!' 'Ovo'...'je'...'1'...'primjer' => Uzorak \W+ (ne-alfanumeri ki znakovi)

2.2 REGEX 15 'Ovo je #1 primjer!'...' '...' #'...' '...'!' >>> Obrazložite svaki pojedinačni ispis. Potom odgovorite na sljedeća pitanja: 1. Koje učitavanje Python modula je bolje: import re ili from re import *? 2. Kako se u funkciju test_re() prenose uzorci regularnog izraza? 3. Kako se stvara help funkcija bilo koje Python funkcije? 4. Koji tip podatka vraća finditer()? 5. Koja je razlika izme du %s i %r formata? Probajte ispitati funkciju test_re() s nekim drugim tekstom i s nekim drugim uzorcima! 2.2 REGEX 2.2.1 Funkcije search() i match() Zadatak 2.1 Funkcija search() traži regularne uzorke u zadanom tekstu. Uzorak može biti i najobičniji string, zašto ne? Program 2.2 search(). Prije pokretanja programa pozorno proučite svaki njegov redak: 1 print('** SEARCH() **') 2 uzorak = 'ovaj' 3 tekst = 'Ima li ovaj tekst ovaj uzorak?' 4 nasli = re.search( X ) 5 s = nasli.start() 6 e = nasli.end() 7 print('nasli "%s" u "%s" \n od %d. do %d. mjesta - smje²ten je ("%s")' % \ 8 (nasli.re.pattern, nasli. Y, s, e, tekst Z )) koji daje sljedeći ispis na zaslonu: Zaslon 2.2 ** SEARCH() ** Nasli "ovaj" u "Ima li ovaj tekst ovaj uzorak?" od 7. do 11. mjesta - smje²ten je ("ovaj")

16 Regularni izrazi I (eng. regex) Kojeg tipa je varijabla nasli, te koje sve atribute i funkcije(metode) ona ima? Upišite ispravne nizove znakova umjesto zamjenskih X, Y, Z kako bi program ispravno radio. Zadatak 2.2 Funkcija search() traži regularne uzorke u zadanom tekstu. Uzorak može biti i najobičniji string, zašto ne? Program 2.3 compile(). Prije pokretanja programa pozorno proučite svaki njegov redak: 1-2 print('** COMPILE() **') 3 # Precompilacija uzoraka 4 regexi = [ re.compile(p) 5 for p in [ 'taj', 'ovo', 'Ima', 'onaj', 'uzorak'] 6 ] 7 tekst = 'Ima li ovaj tekst taj uzorak?' 8 print('tekst: %r\n' % tekst) 9 10 print('* MATCH *') 11 for regex in regexi: 12 print('traºim "%s" ->' % regex.pattern), 13 if regex.match(tekst): 14 print('ima ga MATCH :)!') 15 else: 16 print('nema ga MATCH :(') 17 print 18 print('*search *') 19 for regex in regexi: 20 print('traºim "%s" ->' % regex.pattern), 21 if regex.search(tekst): 22 print('ima ga SEARCH :)!') 23 else: 24 print('nema ga SEARCH :(') Za metodu compile() možete pogledati argumente na koncu dokumenta. Nakon izvo denja program daje sljedeći ispis na zaslonu: Zaslon 2.3 ** COMPILE() ** tekst: 'Ima li ovaj tekst taj uzorak?' * MATCH * Traºim "taj" -> Nema ga MATCH :( Traºim "ovo" -> Nema ga MATCH :( Traºim "Ima" -> Ima ga MATCH :)! Traºim "onaj" -> Nema ga MATCH :( Traºim "uzorak" -> Nema ga MATCH :( *SEARCH * Traºim "taj" -> Ima ga SEARCH :)! Traºim "ovo" -> Nema ga SEARCH :( Traºim "Ima" -> Ima ga SEARCH :)! Traºim "onaj" -> Nema ga SEARCH :( Traºim "uzorak" -> Ima ga SEARCH :)!

2.2 REGEX 17 Kojeg tipa je varijabla regexi, a kojeg njezini elementi? Koje prednosti ima compiliranje uzoraka pred klasičnim (stringovnim) pozivima? Zašto funkcija match() ne pronalazi iste compilirane uzorke u tekstu, kao što uspijeva search()? 2.2.2 Kvantifikatori Zadatak 2.3 Upoznajmo kvantifikatore regularnih izraza: Program 2.4 kvantifikatori. 1 print('** RE-KVANTIFIKATORI **') 2 test_re( 3, 4 [ ('ab*', 'iza a slijede 0 ili vi²e b'), 5 ('ab+', 'iza a slijede 1 ili vi²e b'), 6 ('ab?', 'iza a slijedi nijedan ili 1 b'), 7 ('ab{3}', 'iza a slijede 3 b'), 8 ('ab{2,3}', 'iza a slijede 2 ili 3 b'), 10 11 9 ]) 12 ## ne pohlepni kvantifikatori 13 print('** NE POHLEPNI RE-KVANTIFIKATORI **') 14 test_re( 15, 16 [ ('ab*?', 'iza a slijede 0 ili vi²e b'), 17 ('ab+?', 'iza a slijede 1 ili vi²e b'), 18 ('ab??', 'iza a slijedi nijedan ili 1 b'), 19 ('ab{3}?', 'iza a slijede 3 b'), 20 ('ab{2,3}?', 'iza a slijede 2 ili 3 b'), 21 ]) daje sljedeći ispis na zaslonu: Zaslon 2.4... ** RE-KVANTIFIKATORI ** => Uzorak ab* (iza a slijede 0 ili vi²e b) 'abb'...'a'...'abbb'...'a' => Uzorak ab+ (iza a slijede 1 ili vi²e b) 'abb'...'abbb' => Uzorak ab? (iza a slijedi nijedan ili 1 b)

18 Regularni izrazi I (eng. regex) 'ab'...'a'...'ab'...'a' => Uzorak ab{3} (iza a slijede 3 b)...'abbb' => Uzorak ab{2,3} (iza a slijede 2 ili 3 b) 'abb'...'abbb'!!! PRIJE IZVOÐENJA PROGRAMA PRETPOSTAVITE RJE ENJA!!! ** NE POHLEPNI RE-KVANTIFIKATORI ** => Uzorak (upi²ite:...) (iza a slijede 0 ili vi²e b) 'a'...'a'...'a'...'a' => Uzorak (upi²ite:...) (iza a slijede 1 ili vi²e b) 'ab'...'ab' => Uzorak (upi²ite:...) (iza a slijedi nijedan ili 1 b) 'a'...'a'...'a'...'a' => Uzorak (upi²ite:...) (iza a slijede 3 b)...'abbb'

2.2 REGEX 19 => Uzorak (upi²ite:...) (iza a slijede 2 ili 3 b) 'abb'...'abb' ** RE-KLASE ** => Uzorak (upi²ite:...) (ili a ili b) 'a'.'b'..'b'...'a'...'a'...'b'...'b'...'b'...'a' => Uzorak (upi²ite:...) (iza a slijedi 1 ili vi²e a ili b) => Uzorak (upi²ite:...) (iza a slijedi 1 ili vi²e a ili b, ne pohlepno) 'ab'...'aa' 2.2.3 Klase/razredi uzoraka Zadatak 2.4 Cilj je upoznati klase znakova, njihova izuzeća i opsege (raspone) djelovanja. Program 2.5 klase uzoraka. 1 ## re-klase 2 print('** RE-KLASE **') 3 test_re( 4, 5 [ ('[ab]', 'ili a ili b'), 6 ('a[ab]+', 'iza a slijedi 1 ili vi²e a ili b'), 7 ('a[ab]+?', 'iza a slijedi 1 ili vi²e a ili b, ne pohlepno'), 8 ]) 9 10 ## klase s izuze em 11 print('** RE-KLASE S IZUZECEM **') 12 test_re( 13, 14 [ ('[^-. ]+', 'niz bez -,., i praznine (razmaknice)'), 15 ])

20 Regularni izrazi I (eng. regex) 16 17 18 ## klase s rasponima 19 print('** RE-KLASE S RASPONIMA **') 20 test_re( 21, 22 [ ('[a-z]+', 'niz s malim slovima'), 23 ('[A-Z]+', 'niz s velikim slovima'), 24 ('[a-za-z]+', 'niz s malim i velikim slovima'), 25 ('[A-Z][a-z]+', 'jedno veliko slovo iza kojeg slijede mala'), 26 ]) daje sljedeći ispis na zaslonu: Zaslon 2.5 ** RE-KLASE ** => Uzorak [ab] (ili a ili b) 'a'.'b'..'b'...'a'...'a'...'b'...'b'...'b'...'a' => Uzorak a[ab]+ (iza a slijedi 1 ili vi²e a ili b) => Uzorak a[ab]+? (iza a slijedi 1 ili vi²e a ili b, ne pohlepno) 'ab'...'aa' ** RE-KLASE S IZUZEÄ EM ** => Uzorak [^-. ]+ (niz bez -,., i praznine (razmaknice)) 'Ovo'...'je'...'neki'...'tekst'...'s'...'interpunkcijskim'

2.2 REGEX 21...'znacima' ** RE-KLASE S RASPONIMA ** => Uzorak [a-z]+ (niz s malim slovima).'vo'...'je'...'neki'...'tekst'...'s'...'interpunkcijskim'...'znacima' => Uzorak [A-Z]+ (niz s velikim slovima) 'O' => Uzorak [a-za-z]+ (niz s malim i velikim slovima) 'Ovo'...'je'...'neki'...'tekst'...'s'...'interpunkcijskim'...'znacima' => Uzorak [A-Z][a-z]+ (jedno veliko slovo iza kojeg slijede mala) 'Ovo' Zadatak 2.5 Cilj je pokazati posebnost meta-znaka točke (. ). Program 2.6 meta znakovi. 1 2 print('** TOƒKA - BILO ²TO **') 3 test_re( 4, 5 [ ('a.', 'iza a slijedi bilo koji znak'), 6 ('b.', 'iza b slijedi bilo koji znak'), 7 ('a.*b', 'iza a slijedi s bilo im i zavr²ava s b'), 8 ('a.*?b', 'iza a slijedi s bilo im i zavr²ava s b'), 9 ]) daje sljedeći ispis na zaslonu:

22 Regularni izrazi I (eng. regex) Zaslon 2.6 ** TOƒKA - BILO TO ** => Uzorak a. (iza a slijedi bilo koji znak) 'ab'...'aa' => Uzorak b. (iza b slijedi bilo koji znak).'bb'...'bb'...'ba' => Uzorak a.*b (iza a slijedi s bilo im i zavr²ava s b) 'abbaabbb' => Uzorak a.*?b (iza a slijedi s bilo im i ² s b) 'ab'...'aab' Zadatak 2.6 Cilj je pokazati posebne meta-znakove koji znače navigacijske točke (sidrišta) Program 2.7 sidrišta. 1 print('** SIDRENJA **') 2 test_re( 3, 4 [ (r'^\w+', 'rije na po etku niza'), 5 (r'\a\w+', 'rije na po etku niza'), 6 (r'\w+\s*$', 'rije blizu zavr²etka niza, preska e interpunkciju'), 7 (r'\w+\s*\z', 'rije blizu zavr²etka niza, preska e interpunkciju'), 8 (r'\w*t\w*', 'rije koja sadrºi t'), 9 (r'\bt\w+', 't na po tku rije i'), 10 (r'\w+t\b', 't na zavr²etku rije i'), 11 (r'\bt\b', 't koja nije ni na po etku ni na zavr²etku rije i'), 12 ]) koji daje sljedeći ispis na zaslonu: Zaslon 2.7 ** SIDRENJA ** => Uzorak ^\w+ (rije na po etku niza)

2.2 REGEX 23 'Ovo' => Uzorak \A\w+ (rije na po etku niza) 'Ovo' => Uzorak \w+\s*$ (rije blizu zavr²etka niza, preska e interpunkciju)...'znacima.' => Uzorak \w+\s*\z (rije blizu zavr²etka niza, preskaä e interpunkciju)...'znacima.' => Uzorak \w*t\w* (rije koja sadrºi t)...'tekst'...'interpunkcijskim' => Uzorak \bt\w+ (t na po etku rije i)...'tekst' => Uzorak \w+t\b (t na zavr²etku rije i)...'tekst' => Uzorak \Bt\B (t koja nije ni na po etku ni na zavr²etku rije i)...'t' 2.2.4 Uvod u skupine (grupe) uzoraka Zadatak 2.7 Program 2.8 skupine. Ovaj program uvodi skupine ili grupe meta-znakova regularnog uzorka 1 print('** SKUPINE (GRUPE) **') 2 test_re( 3 'abbaaabbbbaaaaa', 4 [ ('a(ab)', 'iza a slijedi literal ab'), 5 ('a(a*b*)', 'iza a slijedi 0-n a-ova i 0-n b-ovo'), 6 ('a(ab)*', 'iza a slijedi 0-n ab-ova'),

24 Regularni izrazi I (eng. regex) 7 ('a(ab)+', 'iza a slijedi 1-n ab'), 8 ]) što pokretanjem daje sljedeći ispis na zaslonu: Zaslon 2.8 ** SKUPINE (GRUPE) ** => Uzorak a(ab) (iza a slijedi literal ab) 'abbaaabbbbaaaaa'...'aab' => Uzorak a(a*b*) (iza a slijedi 0-n a-ova i 0-n b-ovo) 'abbaaabbbbaaaaa' 'abb'...'aaabbbb'...'aaaaa' => Uzorak a(ab)* (iza a slijedi 0-n ab-ova) 'abbaaabbbbaaaaa' 'a'...'a'...'aab'...'a'...'a'...'a'...'a'...'a' => Uzorak a(ab)+ (iza a slijedi 1-n ab) 'abbaaabbbbaaaaa'...'aab' 2.3 Domaća zadaća 2.3.1 Rad s regularnim izrazima Domaća zadaća 2.1 Nadopunite listu uzorci s uzorcima regularnih izraza: 1 import re 2 print(tekst) 3 4 uzorci = [ 5 (r'...', 'rije na po etku niza'), 6 (r'...', 'rije na zavr²etku niza, s dodatnim interpunkcijama'),

2.3 Domaća zadaća 25 7 (r'...', 'rije koja po inje s t, pa idu a rije '), 8 (r'...', 'rije koja zavr²ava sa slovom m'), 9 ] 10 11 for uzorak, desc in uzorci: 12 regex = re.compile(uzorak) 13 nasli = regex.search(tekst) 14 print('%s\n' % desc), 15 print(nasli.groups()) 16 17 % koji će dati sljedeći zaslon: Zaslon 2.9 ** REGEX SKUPINE (GRUPE) ** Ovo je neki udni tekst *$! sa ---!?*$.%- interpunkcijskim znakovima. (rije na po etku niza) ('Ovo',) (rije na zavr²etku niza, s dodatnim interpunkcijama) ('znakovima',) (rije koja po inje s t, pa idu a rije ) ('tekst', 'sa') (rije koja zavr²ava sa slovom m) ('interpunkcijskim',)

26 Regularni izrazi I (eng. regex)