Primjeri Python Regex

Primjeri Python Regex



Puni oblik regularnog izraza je regularni izraz. To je važna značajka svakog programskog jezika. To je uzorak niza koji se koristi za podudaranje, pretraživanje ili zamjenu nizova u vrijednosti niza. Uzorak regularnog izraza može se koristiti u Python skripti pomoću modula “re” Pythona. Ovaj modul ima mnoge vrste funkcija za obavljanje različitih operacija nizova. Za definiranje uzoraka regularnih izraza za pretraživanje ili zamjenu zadataka koriste se različiti metakarakteri i posebni nizovi. Svrhe korištenja nekih često korištenih metaznakova, posebnih nizova i metoda regularnih izraza u Python skripti prikazane su u ovom vodiču.

Neki često korišteni metakarakteri u regularnom izrazu:









Likovi Svrha
'+' Koristi se za podudaranje jednog ili više pojavljivanja određenog znaka u nizu.
'*' Koristi se za podudaranje nula ili više pojavljivanja određenog znaka u nizu.
'?' Koristi se za podudaranje nula ili jednog pojavljivanja određenog znaka u nizu.
'^' Koristi se za podudaranje određenog znaka ili niza na početku niza.
'$' Koristi se za podudaranje određenog znaka ili niza na kraju niza.
'|' Koristi se za podudaranje bilo kojeg od više nizova u nizu. Radi kao logika ILI.
‘[]’ Koristi se za podudaranje niza znakova.
'{}' Koristi se za podudaranje određenog broja znakova.



Neke najčešće korištene posebne sekvence u regularnom izrazu:





Nizovi Svrha
'\A' Koristi se za podudaranje određenog znaka na početku niza. Djeluje kao znak “^”.
'\b', '\B' '\b' se koristi za podudaranje niza koji sadrži određeni znak ili riječ na početku ili kraju niza. '\B' radi suprotno od '\b'.
'\dd' '\d' se koristi za podudaranje decimalnog broja u nizu koji je sličan '[0-9]'. '\D' djeluje suprotno od '\d'.
'\s', '\S' '\s' se koristi za podudaranje razmaka u nizu koji je sličan '[\n\t\r\v]'. '\S' djeluje suprotno od '\s'.
'\w', '\W' '\w' se koristi za podudaranje abecednih i numeričkih znakova u nizu. '\W' djeluje suprotno od '\w'.
'\S' Koristi se za podudaranje određenog znaka na kraju niza. Djeluje kao znak '$'.

Primjer 1: Spajanje niza pomoću funkcije Match().

Funkcija match() koristi se za podudaranje uzorka regularnog izraza na početku niza. Sintaksa ove funkcije dana je na sljedeći način:



Sintaksa:

ponoviti utakmicu ( uzorak, niz, zastave = 0 )

Ovdje se prvi argument koristi za definiranje uzorka regularnog izraza. Drugi argument se koristi za definiranje glavnog niza. Treći argument nije obavezan i koristi se za definiranje različitih vrsta zastavica.

Stvorite Python datoteku sa sljedećom skriptom koja odgovara uzorku regularnog izraza s definiranim nizom pomoću funkcije match(). Prvo se za podudaranje koristi definirani uzorak regularnog izraza. Zatim se od korisnika uzima riječ za pretraživanje i koristi se kao uzorak regularnog izraza za podudaranje s vrijednošću niza. Ako se nađe bilo kakvo podudaranje, ispisuje se tražena riječ. U suprotnom, ispisuje se niz 'Nije pronađena podudarna vrijednost'.

#Uvezi potreban modul
uvoz re

#Definirajte funkciju za ispis odgovarajućeg rezultata
def matchString ( ) :
#Provjeri povratnu vrijednost funkcije match().
ako zajedno s ! = Ništa:
ispisati ( ''' + mat.grupa ( ) + '' se nalazi u '' + strVrijednost + ''' )
drugo:
ispisati ( 'Nije pronađena odgovarajuća vrijednost.' )

#Definirajte vrijednost niza
strVrijednost = 'Prvi ušao prvi izašao.'
#Uparite niz na temelju uzorka
mat = re.utakmica ( '^Prvi' , strVrijednost )
#Call funkcija za ispis rezultata utakmice
matchString ( )

#Uzmite niz za pretraživanje
inVrijednost = unos ( 'Unesite vrijednost pretraživanja: ' )
mat = re.utakmica ( inVrijednost + , strVrijednost )
#Call funkcija za ispis rezultata utakmice
matchString ( )

Za 'prvu' ulaznu vrijednost pojavljuje se sljedeći izlaz:

Primjer 2: Pronađite niz pomoću funkcije Findall().

Funkcija findall() koristi se za vraćanje svih podudarnih riječi koje se nalaze u glavnom nizu kao tuple.

Sintaksa:

ponovno pronaći ( uzorak, niz, zastave = 0 )

Ovdje se prvi argument koristi za definiranje uzorka regularnog izraza. Drugi argument se koristi za definiranje glavnog niza. Treći argument nije obavezan i koristi se za definiranje različitih vrsta zastavica.

Stvorite Python datoteku sa sljedećom skriptom koja preuzima glavnu vrijednost niza i vrijednost niza za pretraživanje od korisnika. Zatim upotrijebite riječ za pretraživanje  u uzorku regularnog izraza da pronađete riječ za pretraživanje u glavnom nizu. U izlazu se ispisuje ukupan broj podudaranja.

#Uvezi potreban modul
uvoz re

#Uzmite vrijednost niza
inVrijednost = unos ( 'Unesite niz: ' )

#Uzmite riječ za pretraživanje
srcValue = ulaz ( 'Unesite riječ za pretraživanje: ' )

#Traži riječ u nizu
srcResult = re.findall ( srcVrijednost + '\U*' , inVrijednost )
#Ispiši rezultat pretraživanja
ispisati ( 'Riječ '' + srcVrijednost + '' se nalazi u nizu '
+ str ( samo ( srcRezultat ) ) + 'puta.' )

Prema rezultatu, riječ za pretraživanje 'jesti' nalazi se dvaput u glavnom nizu 'Mi jedemo da bismo živjeli i ne živimo da bismo jeli'.

Primjer 3: Pretraživanje niza pomoću funkcije Search().

Search() je još jedna funkcija za pretraživanje određenog uzorka u vrijednosti niza. Sadrži iste argumente kao i funkcije match() i findall(). Stvorite Python datoteku sa sljedećom skriptom koja pretražuje riječ 'Python' u vrijednosti niza koja će biti preuzeta od korisnika. Ako tražena riječ postoji u ulaznoj vrijednosti, ispisuje se poruka o uspjehu. U protivnom se ispisuje poruka o pogrešci.

#Uvezi re modul
uvoz re

#Uzmite vrijednost niza
inVrijednost = unos ( 'Unesite niz: ' )
#Traži određenu riječ u vrijednosti niza
srcResult = ponovno pretraživanje ( r 'Python\w*' , inVrijednost )

#Provjerite je li tražena riječ pronađena ili ne
ako srcRezultat:
ispisati ( ''' + srcResult.group ( ) + '' se nalazi u '' + inVrijednost + ''' )
drugo:
ispisati ( 'Niz za pretraživanje nije pronađen.' )

Izlaz:

Sljedeći izlaz se pojavljuje ako je ulazni niz 'Volim Python programiranje':

Sljedeći izlaz se pojavljuje ako je ulazni niz 'Volim PHP programiranje':

Primjer 4: Zamijenite niz pomoću funkcije Sub().

Funkcija sub() koristi se za pretraživanje određenog niza na temelju uzorka i njegovu zamjenu drugom riječi. Sintaksa ove funkcije dana je na sljedeći način:

Sintaksa:

re.sub ( uzorak, zamijeniti_string, glavni_string )

Prvi argument ove funkcije sadrži uzorak koji se koristi za pretraživanje određenog niza u glavnom nizu.

Drugi argument ove funkcije sadrži vrijednost niza 'zamijeni'.

Treći argument ove funkcije sadrži glavni niz.

Ova funkcija vraća zamijenjeni niz ako u glavnom nizu postoji podudarna riječ na temelju prvog argumenta.

Napravite Python datoteku sa sljedećom skriptom koja traži dvije znamenke na kraju niza. Ako niz sadrži dvije znamenke na kraju, znamenke se zamjenjuju nizom '$50'.

#Uvezi re modul
uvoz re

#Definirajte glavni niz
strVrijednost = 'Cijena knjige je 70'

#Definirajte uzorak pretraživanja
uzorak = '[0-9]{2}'

#Definirajte vrijednost zamjene
zamijeniVrijednost = '50 $'

#Traži i zamijeni niz na temelju uzorka
modificirana_strVrijednost = re.sub ( pattern, replaceValue, strValue )
#Ispiši izvorne i modificirane vrijednosti niza
ispisati ( 'Izvorni niz: ' + strVrijednost )
ispisati ( 'Modificirani niz: ' + modificirana_strVrijednost )

Izlaz:

Bilo ih je 70 na kraju glavne žice. Dakle, 70 je zamijenjeno s 50 USD u zamijenjenom nizu.

Primjer 5: Zamijenite niz pomoću funkcije Subn().

Funkcija subn() radi kao funkcija sub(), osim što vraća izlaz kao torku gdje prvi indeks sadrži zamijenjenu vrijednost, a drugi indeks sadrži ukupan broj podudaranja.

Stvorite Python datoteku sa sljedećom skriptom koja pretražuje slova od A do L u nizu 'LinuxHint.com' pomoću funkcije subn():

#Uvezi re modul
uvoz re

#Definirajte glavni niz
strVrijednost = 'LinuxHint.com'

#Definirajte uzorak pretraživanja
uzorak = '[PREMA]'

#Definirajte vrijednost zamjene
zamijeniVrijednost = '*'

#Traži i zamijeni niz na temelju uzorka
modified_strValue = re.subn ( pattern, replaceValue, strValue )
#Ispiši originalni niz i izlaz subn()
ispisati ( 'Izvorni niz: \n ' + strVrijednost )
ispisati ( 'Izlaz funkcije subn(): ' )
ispisati ( modificirana_strVrijednost )

Izlaz:

Prema sljedećem rezultatu, znakovi “L” i “H” zamijenjeni su znakom “*”.

Primjer 6: Podijelite niz pomoću funkcije Split().

Stvorite Python datoteku sa sljedećom skriptom koja je koristila funkciju split() za dijeljenje glavnog niza u više dijelova na temelju uzorka regularnog izraza:

#Uvezi re modul
uvoz re

#Definirajte vrijednost niza
strVal= 'Rupa Akter;Nira Chowdhury;Mazharul Islam'
#Definirajte uzorak koji će se koristiti za dijeljenje podataka
uzorak = '[^A-Za-z ]'
#Pohranite podijeljene vrijednosti na popis
split_rezultat = re.split ( uzorak, strVal )
ispisati ( 'Izlaz funkcije split():' )
ispisati ( split_rezultat )

Izlaz:

Prema izlazu, glavni niz je podijeljen u tri dijela na temelju uzorka '[^A-Za-z ]' koji se koristi u skripti.

Zaključak

Svrha najčešće korištenih metaznakova, raspona i Python ugrađenih funkcija za pretraživanje, zamjenu i dijeljenje nizova prikazana je u ovom vodiču pomoću jednostavnih Python skripti.