Python Regex eksempler

Python Regex Eksempler



Den fullstendige formen for regex er regulært uttrykk. Det er en viktig funksjon i ethvert programmeringsspråk. Det er et strengmønster som brukes til å matche, søke etter eller erstatte strengene i en strengverdi. Regex-mønsteret kan brukes i Python-skriptet ved å bruke 're'-modulen til Python. Denne modulen har mange typer funksjoner for å utføre forskjellige strengoperasjoner. Ulike metategn og spesielle sekvenser brukes til å definere regex-mønstrene for å søke eller erstatte oppgavene. Hensikten med å bruke noen vanlige metategn, spesielle sekvenser og regex-metoder i Python-skriptet er vist i denne opplæringen.

Noen vanlige metategn i regulært uttrykk:









Tegn Hensikt
'+' Den brukes til å matche en eller flere forekomster av et bestemt tegn i en streng.
'*' Den brukes til å matche null eller flere forekomster av et bestemt tegn i en streng.
'?' Den brukes til å matche null eller én forekomst av et bestemt tegn i en streng.
'^' Den brukes til å matche det spesielle tegnet eller strengen i begynnelsen av strengen.
'$' Den brukes til å matche det bestemte tegnet eller strengen på slutten av strengen.
'|' Den brukes til å matche en av de flere strengene i en streng. Det fungerer som OR-logikken.
«[]» Den brukes til å matche en rekke tegn.
'{}' Den brukes til å matche et spesifikt antall tegn.



Noen ofte brukte spesialsekvenser i regulært uttrykk:





Sekvenser Hensikt
'\EN' Den brukes til å matche det spesielle tegnet i begynnelsen av strengen. Det fungerer som '^'-tegnet.
'\b', '\B' '\b' brukes til å matche strengen som inneholder det spesielle tegnet eller ordet på begynnelsen eller slutten av strengen. '\B' fungerer motsatt av '\b'.
'\d', '\D' '\d' brukes til å matche desimaltallet i strengen som ligner på '[0-9]'. '\D' fungerer motsatt av '\d'.
'\s', '\S' '\s' brukes til å matche mellomrom i strengen som ligner på '[\n\t\r\v]'. '\S' fungerer motsatt av '\s'.
'\w', '\W' '\w' brukes til å matche de alfabetiske og numeriske tegnene i strengen. '\W' fungerer motsatt av '\w'.
'\MED' Den brukes til å matche det spesielle tegnet på slutten av strengen. Det fungerer som '$'-tegnet.

Eksempel 1: Match strengen ved å bruke Match()-funksjonen

Match()-funksjonen brukes til å matche et regex-mønster på begynnelsen av strengen. Syntaksen til denne funksjonen er gitt som følger:



Syntaks:

re.match ( mønster, streng, flagg = 0 )

Her brukes det første argumentet for å definere regex-mønsteret. Det andre argumentet brukes til å definere hovedstrengen. Det tredje argumentet er valgfritt og brukes til å definere ulike typer flagg.

Lag en Python-fil med følgende skript som samsvarer med et regex-mønster med en definert streng ved å bruke match()-funksjonen. Først brukes et definert regex-mønster for å matche. Deretter tas et søkeord fra brukeren og brukes som et regex-mønster for å matche strengverdien. Hvis noen treff blir funnet, skrives søkeordet ut. Ellers skrives 'Ingen samsvarende verdi funnet'-strengen ut.

#Importer nødvendig modul
import vedr

#Definer funksjonen for å skrive ut det matchende resultatet
def matchString ( ) :
#Sjekk returverdien til match()-funksjonen
hvis sammen med ! = Ingen:
skrive ut ( ''' + mattegruppe ( ) + '' finnes i '' + strVerdi + ''' )
ellers:
skrive ut ( 'Ingen samsvarende verdi funnet.' )

#Definer strengverdien
strVerdi = 'Først inn først ut.'
# Match strengen basert på mønsteret
matte = re.match ( '^Først' , strVerdi )
#Call-funksjon for å skrive ut kampresultatet
matchString ( )

#Ta søkestrengen
inValue = input ( 'Skriv inn søkeverdien: ' )
matte = re.match ( inValue + , strValue )
#Call-funksjon for å skrive ut kampresultatet
matchString ( )

Følgende utgang vises for den 'første' inngangsverdien:

Eksempel 2: Finn strengen ved å bruke Findall()-funksjonen

Findall()-funksjonen brukes til å returnere alle samsvarende ord som finnes i hovedstrengen som en tuppel.

Syntaks:

re.findall ( mønster, streng, flagg = 0 )

Her brukes det første argumentet for å definere regex-mønsteret. Det andre argumentet brukes til å definere hovedstrengen. Det tredje argumentet er valgfritt og brukes til å definere ulike typer flagg.

Lag en Python-fil med følgende skript som tar en hovedstrengverdi og en søkestrengverdi fra brukeren. Deretter bruker du søkeordet i regex-mønsteret for å finne søkeordet i hovedstrengen. Antallet totale treff skrives ut i utskriften.

#Importer nødvendig modul
import vedr

#Ta en strengverdi
inValue = input ( 'Skriv inn en streng: ' )

#Ta et søkeord
srcValue = input ( 'Skriv inn et søkeord: ' )

#Søk etter ordet i strengen
srcResult = re.findall ( srcValue + '\I*' , inVerdi )
#Skriv ut søkeresultatet
skrive ut ( 'Ordet '' + srcValue + '' finnes i strengen'
+ str ( bare ( srcResultat ) ) + ' ganger.' )

I følge utdataene finnes søkeordet 'spise' to ganger i hovedstrengen 'Vi spiser for å leve og lever ikke for å spise'.

Eksempel 3: Søk i strengen ved å bruke Search()-funksjonen

Søket() er en annen funksjon for å søke etter et bestemt mønster i en strengverdi. Den inneholder de samme argumentene som match() og findall() funksjonene. Lag en Python-fil med følgende skript som søker etter ordet 'Python' i en strengverdi som vil bli tatt fra brukeren. Hvis søkeordet finnes i inndataverdien, skrives en suksessmelding ut. Ellers skrives en feilmelding ut.

#Importer re modul
import vedr

#Ta en strengverdi
inValue = input ( 'Skriv inn en streng: ' )
#Søk etter det bestemte ordet i strengverdien
srcResult = re.search ( r 'Python\w*' , inVerdi )

#Sjekk om søkeordet er funnet eller ikke
hvis srcResultat:
skrive ut ( ''' + srcResult.group ( ) + '' finnes i '' + inVerdi + ''' )
ellers:
skrive ut ( 'Søkestrengen ble ikke funnet.' )

Produksjon:

Følgende utgang vises hvis inngangsstrengen er 'Jeg liker Python-programmering':

Følgende utgang vises hvis inngangsstrengen er 'Jeg liker PHP-programmering':

Eksempel 4: Erstatt strengen ved å bruke Sub()-funksjonen

Sub()-funksjonen brukes til å søke i en bestemt streng basert på mønsteret og erstatte den med et annet ord. Syntaksen til denne funksjonen er gitt som følger:

Syntaks:

re.sub ( mønster, erstatte_streng, hovedstreng )

Det første argumentet til denne funksjonen inneholder mønsteret som brukes til å søke i den spesielle strengen i hovedstrengen.

Det andre argumentet til denne funksjonen inneholder strengverdien 'erstatt'.

Det tredje argumentet til denne funksjonen inneholder hovedstrengen.

Denne funksjonen returnerer den erstattede strengen hvis det finnes et samsvarende ord i hovedstrengen basert på det første argumentet.

Lag en Python-fil med følgende skript som søker etter to sifre på slutten av strengen. Hvis strengen inneholder to sifre på slutten, erstattes sifrene med '$50'-strengen.

#Importer re modul
import vedr

#Definer hovedstrengen
strVerdi = 'Bokprisen er 70'

#Definer søkemønsteret
mønster = «[0-9]{2}»

#Definer erstatningsverdien
replaceValue = '$50'

#Søk og erstatt strengen basert på mønsteret
modified_strValue = re.sub ( mønster, replaceValue, strValue )
#Skriv ut de opprinnelige og endrede strengverdiene
skrive ut ( 'Original streng: ' + strVerdi )
skrive ut ( 'Endret streng: ' + modified_strValue )

Produksjon:

Det var 70 på slutten av hovedstrengen. Så 70 er erstattet av $50 i den erstattede strengen.

Eksempel 5: Erstatt strengen ved å bruke Subn()-funksjonen

Subn()-funksjonen fungerer som sub()-funksjonen, bortsett fra at den returnerer utdata som en tuppel der den første indeksen inneholder den erstattede verdien og den andre indeksen inneholder det totale antallet treff.

Lag en Python-fil med følgende skript som søker etter alfabetene A til L i 'LinuxHint.com'-strengen ved å bruke subn()-funksjonen:

#Importer re modul
import vedr

#Definer hovedstrengen
strVerdi = 'LinuxHint.com'

#Definer søkemønsteret
mønster = '[TIL]'

#Definer erstatningsverdien
replaceValue = '*'

#Søk og erstatt strengen basert på mønsteret
modified_strValue = re.subn ( mønster, replaceValue, strValue )
#Skriv ut den originale strengen og utdataene til subn()
skrive ut ( 'Original streng: \n ' + strVerdi )
skrive ut ( 'Utgang av subn() funksjon: ' )
skrive ut ( modified_strValue )

Produksjon:

I henhold til følgende utdata erstattes 'L'- og 'H'-tegnene med '*'-tegnet.

Eksempel 6: Del opp strengen ved å bruke Split()-funksjonen

Lag en Python-fil med følgende skript som brukte split()-funksjonen til å dele hovedstrengen i flere deler basert på regex-mønsteret:

#Importer re modul
import vedr

#Definer strengverdi
strVal= 'Rupa Akter; Nira Chowdhury; Mazharul Islam'
#Definer mønsteret som skal brukes til å dele dataene
mønster = '[^A-Za-z ]'
#Lagre de delte verdiene i en liste
split_result = re.split ( mønster, strVal )
skrive ut ( 'Utgang av split()-funksjonen:' )
skrive ut ( delt_resultat )

Produksjon:

I henhold til utdataene er hovedstrengen delt inn i tre deler basert på '[^A-Za-z ]'-mønsteret som brukes i skriptet.

Konklusjon

Hensikten med de mest brukte metategnene, områdene og Python innebygde funksjoner for å søke, erstatte og dele strengene er vist i denne opplæringen ved hjelp av enkle Python-skript.