Python Regex pavyzdžiai

Python Regex Pavyzdziai



Visa reguliariosios išraiškos forma yra reguliarioji išraiška. Tai svarbi bet kurios programavimo kalbos savybė. Tai yra eilutės šablonas, kuris naudojamas suderinti, ieškoti arba pakeisti eilutės eilutės reikšmėje. Regex šabloną galima naudoti Python scenarijuje naudojant Python modulį „re“. Šis modulis turi daugybę funkcijų, skirtų įvairioms eilutės operacijoms atlikti. Įvairūs metasimboliai ir specialios sekos naudojami norint apibrėžti reguliariojo reiškinio šablonus, kad būtų galima ieškoti arba pakeisti užduotis. Kai kurių dažniausiai naudojamų metasimbolių, specialių sekų ir regex metodų naudojimo Python scenarijuje tikslai parodyti šioje pamokoje.

Kai kurie įprastai naudojami metasimboliai:









Personažai Tikslas
'+' Jis naudojamas norint suderinti vieną ar kelis konkretaus simbolio atvejus eilutėje.
'*' Jis naudojamas norint suderinti nulį ar daugiau tam tikro simbolio atvejų eilutėje.
'?' Jis naudojamas norint suderinti nulį arba vieną konkretaus simbolio atvejį eilutėje.
'^' Jis naudojamas norint suderinti konkretų simbolį ar eilutę eilutės pradžioje.
'$' Jis naudojamas norint suderinti konkretų simbolį ar eilutę eilutės pabaigoje.
'|' Jis naudojamas norint suderinti bet kurią iš kelių eilutės eilučių. Tai veikia kaip ARBA logika.
„[]“ Jis naudojamas norint suderinti daugybę simbolių.
'{}' Jis naudojamas norint atitikti tam tikrą simbolių skaičių.



Kai kurios dažniausiai naudojamos specialios reguliariojo reiškinio sekos:





Sekos Tikslas
'\A' Jis naudojamas norint suderinti konkretų simbolį eilutės pradžioje. Jis veikia kaip simbolis „^“.
„\b“, „\B“ „\b“ naudojamas norint atitikti eilutę, kurioje yra tam tikras simbolis arba žodis eilutės pradžioje arba pabaigoje. „\B“ veikia priešingai nei „\b“.
„\d“, „\D“ „\d“ naudojamas siekiant atitikti dešimtainį skaičių eilutėje, panašią į „[0-9]“. „\D“ veikia priešingai nei „\d“.
„\s“, „\S“ „\s“ naudojamas norint atitikti tarpą eilutėje, kuri yra panaši į „[\n\t\r\v]“. „\S“ veikia priešingai nei „\s“.
„\w“, „\W“ „\w“ naudojamas abėcėlės ir skaitinių simbolių atitikčiai eilutėje. „\W“ veikia priešingai nei „\w“.
'\SU' Jis naudojamas norint suderinti konkretų simbolį eilutės pabaigoje. Jis veikia kaip simbolis „$“.

1 pavyzdys: suderinkite eilutę naudodami funkciją Match().

Funkcija match() naudojama norint suderinti reguliarųjį reiškinį eilutės pradžioje. Šios funkcijos sintaksė pateikiama taip:



Sintaksė:

re.match ( raštas, styga, vėliavos = 0 )

Čia pirmasis argumentas naudojamas reguliariojo reiškinio šablonui apibrėžti. Antrasis argumentas naudojamas pagrindinei eilutei apibrėžti. Trečiasis argumentas yra neprivalomas ir naudojamas skirtingų tipų vėliavėlėms apibrėžti.

Sukurkite Python failą su šiuo scenarijumi, atitinkančiu reguliarųjį reiškinį su apibrėžta eilute, naudodami funkciją match (). Pirma, suderinti naudojamas apibrėžtas reguliariojo reiškinio šablonas. Tada iš vartotojo paimamas paieškos žodis ir naudojamas kaip reguliariosios išraiškos šablonas, atitinkantis eilutės reikšmę. Jei randama atitiktis, paieškos žodis išspausdinamas. Kitu atveju išspausdinama eilutė „Nerasta atitikimo vertės“.

#Importuokite reikiamą modulį
importo re

#Nustatykite funkciją, kad išspausdintumėte atitikimo rezultatą
def matchString ( ) :
#Patikrinkite funkcijos match() grąžinamąją reikšmę
jeigu kartu su ! = Nėra:
spausdinti ( ''' + mat.grupė ( ) + „“ rasta „“ + strValue + ''' )
Kitas:
spausdinti ( „Nerasta atitinkančios vertės“. )

#Apibrėžkite eilutės reikšmę
strValue = 'Pirmas vidun, pirmas laukan.'
# Suderinkite eilutę pagal modelį
mat = re.match ( '^ Pirma' , strValue )
#Skambinimo funkcija, kad išspausdintumėte rungtynių rezultatą
matchString ( )

#Paimkite paieškos eilutę
inValue = įvestis ( 'Įveskite paieškos reikšmę: ' )
mat = re.match ( inValue + , strValue )
#Skambinimo funkcija, kad išspausdintumėte rungtynių rezultatą
matchString ( )

„Pirmajai“ įvesties vertei rodoma ši išvestis:

2 pavyzdys: Raskite eilutę naudodami Findall() funkciją

Funkcija findall() naudojama grąžinti visus atitinkančius žodžius, esančius pagrindinėje eilutėje kaip eilutę.

Sintaksė:

re.findall ( raštas, styga, vėliavos = 0 )

Čia pirmasis argumentas naudojamas reguliariojo reiškinio šablonui apibrėžti. Antrasis argumentas naudojamas pagrindinei eilutei apibrėžti. Trečiasis argumentas yra neprivalomas ir naudojamas skirtingų tipų vėliavėlėms apibrėžti.

Sukurkite Python failą su šiuo scenarijumi, kuris iš vartotojo paima pagrindinę eilutės reikšmę ir paieškos eilutės reikšmę. Tada naudokite paieškos žodį  reguliariojo reiškinio šablone, kad rastumėte paieškos žodį pagrindinėje eilutėje. Išvestyje atspausdinamas bendras atitikmenų skaičius.

#Importuokite reikiamą modulį
importo re

#Paimkite eilutės reikšmę
inValue = įvestis ( 'Įveskite eilutę:' )

#Paimkite paieškos žodį
srcValue = įvestis ( 'Įveskite paieškos žodį:' )

#Ieškokite žodžio eilutėje
srcResult = re.findall ( srcValue + '\In*' , inValue )
#Atspausdinkite paieškos rezultatą
spausdinti ( 'Žodis '' + srcValue + '' yra eilutėje '
+ str ( tik ( srcResult ) ) + ' laikai.' )

Pagal išvestį paieškos žodis „valgyti“ randamas du kartus pagrindinėje eilutėje „Mes valgome, kad gyventume, o ne gyvename, kad valgytume“.

3 pavyzdys: ieškokite eilutės naudodami funkciją Search ().

Search () yra kita funkcija, skirta ieškoti tam tikro šablono eilutės reikšmėje. Jame yra tie patys argumentai kaip ir funkcijos match() ir findall(). Sukurkite Python failą su šiuo scenarijumi, kuris ieško žodžio 'Python' eilutės reikšmėje, kuri bus paimta iš vartotojo. Jei įvesties reikšmėje yra paieškos žodis, išspausdinamas sėkmės pranešimas. Priešingu atveju išspausdinamas pranešimas apie gedimą.

#Importuoti re modulį
importo re

#Paimkite eilutės reikšmę
inValue = įvestis ( 'Įveskite eilutę:' )
#Ieškokite konkretaus žodžio eilutės reikšmėje
srcResult = re.search ( r „Python\w*“ , inValue )

#Patikrinkite, ar rastas paieškos žodis, ar ne
jeigu srcRezultatas:
spausdinti ( ''' + srcResult.group ( ) + „“ rasta „“ + inValue + ''' )
Kitas:
spausdinti ( „Paieškos eilutė nerasta“. )

Išvestis:

Jei įvesties eilutė yra „Man patinka Python programavimas“, pasirodo ši išvestis:

Ši išvestis rodoma, jei įvesties eilutė yra „Man patinka PHP programavimas“:

4 pavyzdys: pakeiskite eilutę naudodami funkciją Sub().

Funkcija sub() naudojama ieškoti konkrečios eilutės pagal šabloną ir pakeisti ją kitu žodžiu. Šios funkcijos sintaksė pateikiama taip:

Sintaksė:

re.sub ( šablonas, pakeisti_eilutė, pagrindinė_eilutė )

Pirmajame šios funkcijos argumente yra šablonas, naudojamas ieškant konkrečios eilutės pagrindinėje eilutėje.

Antrajame šios funkcijos argumente yra eilutės reikšmė „pakeisti“.

Trečiajame šios funkcijos argumente yra pagrindinė eilutė.

Ši funkcija grąžina pakeistą eilutę, jei pagrindinėje eilutėje, remiantis pirmuoju argumentu, yra atitinkantis žodis.

Sukurkite Python failą naudodami šį scenarijų, kuris ieškos dviejų skaitmenų eilutės pabaigoje. Jei eilutės pabaigoje yra du skaitmenys, skaitmenys pakeičiami eilute „$50“.

#Importuoti re modulį
importo re

#Apibrėžkite pagrindinę eilutę
strValue = 'Knygos kaina 70'

#Apibrėžkite paieškos šabloną
modelis = „[0-9]{2}“

#Apibrėžkite pakeitimo vertę
pakeistiValue = „50 USD“

#Ieškokite ir pakeiskite eilutę pagal šabloną
modified_strValue = re.sub ( šablonas, pakeitimo vertė, strValue )
#Spausdinkite pradines ir pakeistas eilutės reikšmes
spausdinti ( „Originali eilutė:“ + strValue )
spausdinti ( 'Modifikuota eilutė: ' + modifikuota_strValue )

Išvestis:

Pagrindinės eilutės gale buvo 70. Taigi, 70 pakeistoje eilutėje pakeičiama 50 USD.

5 pavyzdys: pakeiskite eilutę naudodami Subn() funkciją

Funkcija subn () veikia kaip funkcija sub (), išskyrus tai, kad ji grąžina išvestį kaip seką, kur pirmame indekse yra pakeista reikšmė, o antrajame indekse yra bendras atitikmenų skaičius.

Sukurkite Python failą su šiuo scenarijumi, kuris ieškos abėcėlės nuo A iki L eilutėje „LinuxHint.com“, naudodamas funkciją subn():

#Importuoti iš naujo modulį
importo re

#Apibrėžkite pagrindinę eilutę
strValue = „LinuxHint.com“

#Apibrėžkite paieškos šabloną
modelis = „[Į]“

#Apibrėžkite pakeitimo reikšmę
pakeistiValue = '*'

#Ieškokite ir pakeiskite eilutę pagal šabloną
modified_strValue = re.subn ( šablonas, pakeitimo vertė, strValue )
#Spausdinkite pradinę eilutę ir subn() išvestį
spausdinti ( 'Originalinė eilutė: \n + strValue )
spausdinti ( 'Funkcijos subn() išvestis: ' )
spausdinti ( modifikuota_strValue )

Išvestis:

Pagal toliau pateiktą išvestį „L“ ir „H“ simboliai pakeičiami simboliu „*“.

6 pavyzdys: išskaidykite eilutę naudodami Split() funkciją

Sukurkite Python failą su šiuo scenarijumi, kuris naudojo funkciją split(), kad padalintų pagrindinę eilutę į kelias dalis pagal reguliarųjį reiškinį:

#Importuoti re modulį
importo re

#Apibrėžkite eilutės reikšmę
strVal= „Rupa Akter; Nira Chowdhury; Mazharul Islam“
#Apibrėžkite šabloną, kuris bus naudojamas duomenims skaidyti
modelis = „[^A-Za-z ]“
#Išsaugokite padalintas reikšmes sąraše
split_result = iš naujo ( modelis, strVal )
spausdinti ( 'Split() funkcijos išvestis:' )
spausdinti ( padalintas_rezultatas )

Išvestis:

Pagal išvestį pagrindinė eilutė yra padalinta į tris dalis pagal scenarijuje naudojamą šabloną „[^A-Za-z ]“.

Išvada

Dažniausiai naudojamų metasimbolių, diapazonų ir „Python“ įtaisytųjų funkcijų paskirtis ieškoti, pakeisti ir skaidyti eilutes parodyta šioje pamokoje naudojant paprastus Python scenarijus.