Python

Regularni izrazi v Pythonu

Regularni izrazi v Pythonu
V tem članku si bomo na kratko ogledali regularne izraze v pythonu. Delali bomo na vgrajenih funkcijah s primeri, ki jim bo sledila tabela, ki bo za boljše razumevanje pojasnila, kaj posamezni znak pomeni v regularnem izrazu.

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:

Preden se lotimo primerov, je tu še ena stvar, ki jo morate vedeti. Za pridobitev ujemajočih se skupin lahko uporabimo dve metodi:

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 ponovno
arraylist = ["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 ponovno
Vhod = “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.

Kako razviti igro na Linuxu
Pred desetletjem le malo uporabnikov Linuxa napoveduje, da bo njihov najljubši operacijski sistem nekoč priljubljena igralna platforma za komercialne ...
Odprtokodna vrata komercialnih igralnih sistemov
Brezplačne, odprtokodne in medplatformacijske igre, ki jih lahko uporabite za igranje starih, pa tudi nekaterih dokaj nedavnih naslovov iger. V tem čl...
Najboljše igre ukazne vrstice za Linux
Ukazna vrstica ni le vaš največji zaveznik pri uporabi Linuxa - lahko je tudi vir zabave, saj jo lahko uporabljate za igranje številnih zabavnih iger,...