Što je regularni izraz?
Prije nego što prijeđemo na praktične primjere, moramo znati što je zapravo regularni izraz. Regularni izraz je niz znakova koji definira strukturu unosa ili obrazac pretraživanja. Zamislite da stavite e-poštu ili lozinku na neko slučajno web mjesto poput Facebooka, Twittera ili Microsofta. Pokušajte to pogrešno izraziti, a pod pogrešnim mislim pokušati ići protiv njihove konvencije. Jasno će vam ukazati na te pogreške. Nećete moći prijeći na sljedeći korak dok se vaš unos ne podudara s uzorkom koji su postavili u pozadini. Taj specifični obrazac, koji vas ograničava u davanju bilo kakvih dodatnih ili irelevantnih informacija, poznat je kao regularni izraz ili regularni izraz.
Regularni izrazi u Pythonu
Regularni izrazi ne igraju različitu ulogu u pythonu kao u drugim programskim jezicima. Python sadrži modul ponovno koji pruža potpunu podršku korištenju regularnih izraza. Svaki put kad se unesu neprikladni ili nenadmašivi podaci ili se dogodi bilo kakva pogreška, ovo ponovno modul će ga shvatiti kao iznimku koja u konačnici pomaže u rješavanju potrebnih problema.
Uzorci regularnih izraza
Dostupno je puno znakova zapisanih u nizu koji čine određeni obrazac regularnog izraza. Osim kontrolnih znakova, (+ ? . * ^ $ () [] | \), svi likovi se podudaraju. Međutim, kontrolni znakovi mogu se izbjeći prepisivanjem obrnute kose crte.
Slijedi tablica koja se sastoji od uzorka i opisa njihovog rada u pythonu.
Uzorak | Opis | |
[Pp] ython | Podudaranje "Python" ili "python" | |
Kada (Ee) | Podudarnost "Cjevčica" ili "Cijev" | |
[aeiou] | Podudarite se s bilo kojim malim slovom | |
[0-9] | Podudarite bilo koju znamenku između 0 i 9 | |
[a-z] | Uskladite bilo koje malo ASCII slovo | |
[A-Z] | Uskladite bilo koje veliko ASCII slovo | |
[a-zA-Z0-9] | Podudarite se s malim i velikim slovima ASCII ili znamenka između 0 i 9 | |
[^ aeiou] | Podudarajte se s bilo čim, samo ne sa malim samoglasnicima | |
[^ 0-9] | Podudarajte se s bilo čime, ali ne i sa znamenkom | |
. | Uskladite bilo koji znak, osim novog retka | |
\ d | Podudaranje s bilo kojom znamenkom: [0-9] | |
\ D | Podudaranje ne-znamenke: [^ 0-9] | |
\ s | Uskladite razmake | |
\ S | Podudarajte se s bijelim razmacima | |
\ A | Podudaranje početka niza | |
\ Z | Kraj kraja niza | |
\ w | Uskladite znakove riječi | |
\ W | Uskladite znakove koji nisu riječi | |
[…] | Podudarite bilo koji pojedinačni znak u zagradama | |
[^…] | Poravnajte bilo koji pojedinačni znak koji nije u zagradama | |
$ | Uskladite kraj retka | |
^ | Poravnaj početak retka |
Funkcije podudaranja i pretraživanja u Pythonu
Sada ćemo ovdje vidjeti dva primjera s dvije ugrađene funkcije koje postoje u pythonu. Jedna se podudara, a druga je funkcija pretraživanja. Oboje uzimaju iste parametre koji su sljedeći:
- Uzorak - Regularni izraz koji se podudara ili pretražuje.
- Niz - Niz koji bi se podudarao ili pretraživao u rečenici ili unosu.
Prije nego što prijeđemo na primjer, evo još jedne stvari koju trebate znati. Dvije metode mogu se koristiti za dobivanje odgovarajućih grupa koje su sljedeće:
- grupe ()
- grupa (broj = 0,1,2…)
Ono što se događa je da kada se koriste funkcije podudaranja ili pretraživanja, on stvara podgrupe svih povezanih obrazaca pronađenih u žicama i strukturira ih na pozicijama počevši od 0. Pogledajte primjer u nastavku da biste dobili bolju ideju.
Funkcija podudaranja (primjer)
U sljedećem smo primjeru uzeli popis u kojem smo upotrijebili regularni izraz koji provjerava riječi koje počinju slovom 'a' i odabrat će samo ako obje riječi počinju istim slovom i.e.: 'a'.
uvoz rearraylist = [„afekt afekta“, „čin naklonosti“, „programiranje naklonosti“]
za element u arraylistu:
k = re.podudaranje ("(a \ w +) \ W (g \ w +)", element)
ako je k:
ispis ((z.grupe ()))
Izlaz:
('naklonost', 'afekt')('naklonost', 'čin')
Treći element na popisu neće se uzimati u obzir jer se ne podudara s regularnim izrazom koji kaže da obje riječi trebaju počinjati s 'a'.
Funkcija pretraživanja (primjer)
Ova se funkcija razlikuje od podudaranja. Pretraživanje skenira cijelu rečenicu, dok podudaranje ne. U sljedećem je primjeru metoda pretraživanja uspješna, ali funkcija podudaranja nije.
uvoz reUlaz = "DocumentationNew"
v = re.traži (“(ta.*) ”, Unos)
ako je v:
ispis (“rezultat:” v.grupa (1))
Izlaz:
rezultat: tationNew'ta.* 'znači bilo što nakon' ta 'što nam daje naš rezultat kao' tationNew 'iz pretraživanog ulaza "DocumentationNew".
Zaključak
Regularni izrazi su presudni za sve programere softvera i sada možete lako vidjeti kako koristiti Regularne izraze u programskom jeziku Python.