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 modulimport 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 modulimport 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 modulimport 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 modulimport 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 modulimport 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 modulimport 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.