Kaj je regularni izraz?
Preden se premaknemo k praktičnim primerom, moramo vedeti, kaj je v resnici regularni izraz. Regularni izraz je zaporedje znakov, ki določa strukturo vnosa ali iskalnega vzorca. Predstavljajte si, da vnesete e-poštno sporočilo ali geslo na neko naključno spletno mesto, kot so Facebook, Twitter ali Microsoft. Poskusite to napačno izraziti in z napačno mislim poskusite iti proti njihovi konvenciji. Na te napake bo jasno opozoril. Ne boste smeli iti na naslednji korak, dokler se vaš vnos ne ujema z vzorcem, ki so ga nastavili v zaledju. Ta poseben vzorec, ki vam preprečuje dajanje kakršnih koli dodatnih ali nepomembnih informacij, je znan kot regularni izraz ali regularni izraz.
Regularni izrazi v Pythonu
Regularni izrazi v pythonu nimajo drugačne vloge kot v drugih programskih jezikih. Python vsebuje modul ponovno ki zagotavlja popolno podporo za uporabo regularnih izrazov. Vsakič, ko vnesete neprimerne ali neprimerljive informacije ali pride do kakršne koli napake, to ponovno modul ga bo ujel kot izjemo, ki na koncu pomaga rešiti zahtevane težave.
Vzorci regularnih izrazov
Na voljo je veliko znakov, zapisanih v zaporedju, ki tvori določen vzorec regularnega izraza. Razen kontrolnih znakov, (+ ? . * ^ $ () [] | \), vsi liki se ujemajo. Nadzornim znakom se lahko izognete s predhodnim vnašanjem poševnice nazaj.
Sledi tabela, ki vsebuje vzorec in opis njihovega dela v pythonu.
Vzorec | Opis | |
[Pp] ython | Ujemanje “Python” ali “python” | |
Kad (Ee) | Ujemanje “TubE” ali “Tube” | |
[samoglasniki] | Ujema se s katerim koli samoglasnikom | |
[0-9] | Ujemajte katero koli številko med 0 in 9 | |
[a-z] | Ujema se s katero koli malo črko ASCII | |
[A-Z] | Ujema se s katero koli veliko črko ASCII | |
[a-zA-Z0-9] | Ujema se s katero koli malo in veliko ASCII črko ali številka med 0 in 9 | |
[^ aeiou] | Ujemajte se z vsemi, razen z malimi samoglasniki | |
[^ 0-9] | Ujemite karkoli, ne pa tudi številko | |
. | Ujema se s katerim koli znakom, razen z novo vrstico | |
\ d | Ujema se s katero koli številko: [0-9] | |
\ D | Ujemanje z nedomestnim številom: [^ 0-9] | |
\ s | Ujemajte se s presledki | |
\ S | Ujemajte se s presledki | |
\ A | Začetek niza ujemanja | |
\ Z | Ujemanje konca niza | |
\ w | Ujemanje besednih znakov | |
\ W | Ujemanje nebesednih znakov | |
[…] | Ujemanje katerega koli posameznega znaka v oklepajih | |
[^…] | Ujemanje katerega koli znaka, ki ni v oklepajih | |
$ | Ujema se s koncem vrstice | |
^ | Ujema se z začetkom vrstice |
Funkcije ujemanja in iskanja v Pythonu
Zdaj bomo videli dva primera z dvema vgrajenima funkcijama, ki obstajata v pythonu. Ena je ujemanje, druga pa funkcija iskanja. Oba imata enake parametre, ki so naslednji:
- Vzorec - Regularen izraz, ki se ujema ali išče.
- Vrvica - Niz, ki bi se ujemal ali iskal v stavku ali vnosu.
Preden se lotimo primerov, je tu še ena stvar, ki jo morate vedeti. Za pridobitev ujemajočih se skupin lahko uporabimo dve metodi:
- skupine ()
- skupina (številka = 0,1,2…)
Kar se zgodi, je, da kadar se uporabljajo funkcije ujemanja ali iskanja, naredi podskupine vseh povezanih vzorcev, ki jih najdemo v nizih, in jih strukturira na položajih, začenši z 0. Za boljšo predstavo si oglejte spodnji primer.
Funkcija ujemanja (primer)
V naslednjem primeru smo vzeli seznam, v katerem smo uporabili regularni izraz, ki preverja besede, ki se začnejo s črko 'a' in bo izbral le, če se obe besedi začneta z isto črko i.e.: "a".
uvozi ponovnoarraylist = ["naklonjenost vpliva", "naklonjenost", "programiranje naklonjenosti"]
za element v arraylistu:
k = re.ujemanje ("(a \ w +) \ W (g \ w +)", element)
če k:
natisni ((z.skupine ()))
Izhod:
("naklonjenost", "prizadetost")("naklonjenost", "dejanje")
Tretji element na seznamu ne bo upoštevan, saj se ne ujema z regularnim izrazom, ki pravi, da se morata obe besedi začeti z 'a'.
Funkcija iskanja (primer)
Ta funkcija se razlikuje od ujemanja. Iskanje skenira celoten stavek, medtem ko ujemanje ne. V naslednjem primeru je metoda iskanja uspešna, funkcija ujemanja pa ne.
uvozi ponovnoVhod = “DocumentationNew”
v = re.iskanje (“(ta.*) ", Vnos)
če v:
natisni (“rezultat:” v.skupina (1))
Izhod:
rezultat: tationNew'ta.* 'pomeni karkoli za' ta ', kar nam daje naš rezultat kot' tationNew 'iz iskanega vhoda "DocumentationNew".
Zaključek
Regularni izrazi so ključnega pomena za vse razvijalce programske opreme in zdaj lahko enostavno vidite, kako uporabljati regularne izraze v programskem jeziku Python.