Limbajul Python este un limbaj de programare cu care poți face multe lucruri utile. Singura limită este imaginația. În acest articol vom vorbi puțin despre Regular Expressions în Python și vom face o aplicație scurtă la acesta.
Regular Expressions (sau RegEx mai pe scurt) este un șir de caractere care formează un tipar sau un model. Este deja pre-instalat în Python și putem să o importăm cu import re .
Exemplu:
import re s = "Faptul ca nu intelegi codul scris in tutorial si il copiezi orbeste ma nelinisteste teribil" x = re.search("^Faptul.*teribil$", txt)
Secvența de cod vede dacă șirul începe cu Faptul și se termină cu teribil.
Alte funcții din librăria re:
Funcție | Ce face |
findall | intoarce o listă care conține toate potrivirile |
compile | Compilează un tipar regex (definit de noi) intr-un object pe care il putem folosi pentru a căuta alte tipare în șir |
split | întoarce o listă unde șirul a fost tăiat la fiecare potrivire |
search | Întoarce un obiect dacă este o potrivire oriunde în șir |
sub | Întoarce una sau mai multe potriviri cu un șir |
Există și metacaractere care ne ajută să scurtăm codul și să ne ușureze astfel munca. Pentru numerele de telefon vom folosi /d care întoarce un șir cu toate cifrele de la 0 la 9. Numerele de telefon românești au 10 cifre, dar numerele de telefon din alte țări au mai multe sau mai puține. Unele au și codul specific regiunii (asta va fi tema pt acasă!!!). Ne vom folosi doar de funcția findall (pentru a găsi nu doar un număr de telefon, ci toate numerele de telefon). Pentru a crea tiparul regex tot ce trebuie să scriem va fi r’\d\d\d\d\d\d\d\d\d\d’ deoarece avem 10 cifre vom folosi de 10 ori /d.
Codul:
import re text = 'Ma poti gasi la numarul personal de telefon 0784352355 sau numarul companiei 0765234081.' for i in re.findall(r'\d\d\d\d\d\d\d\d\d\d' , text): print (i)