Python Regex eksempler

Python Regex Eksempler



Den fulde form for regex er regulært udtryk. Det er et vigtigt træk ved ethvert programmeringssprog. Det er et strengmønster, der bruges til at matche, søge efter eller erstatte strengene i en strengværdi. Regex-mønsteret kan bruges i Python-scriptet ved hjælp af 're'-modulet i Python. Dette modul har mange typer funktioner til at udføre forskellige strengoperationer. Forskellige metategn og specielle sekvenser bruges til at definere regex-mønstrene for at søge eller erstatte opgaverne. Formålet med at bruge nogle almindeligt anvendte metategn, specielle sekvenser og regex-metoder i Python-scriptet er vist i denne tutorial.

Nogle almindeligt anvendte metategn i regex:









Karakterer Formål
'+' Det bruges til at matche en eller flere forekomster af et bestemt tegn i en streng.
'*' Det bruges til at matche nul eller flere forekomster af et bestemt tegn i en streng.
'?' Det bruges til at matche nul eller én forekomst af et bestemt tegn i en streng.
'^' Den bruges til at matche den særlige karakter eller streng i begyndelsen af ​​strengen.
'$' Det bruges til at matche det særlige tegn eller streng i slutningen af ​​strengen.
'|' Det bruges til at matche en hvilken som helst af de flere strenge i en streng. Det fungerer som OR-logikken.
'[]' Det bruges til at matche en række tegn.
'{}' Det bruges til at matche et bestemt antal tegn.



Nogle almindeligt anvendte specielle sekvenser i regex:





Sekvenser Formål
'\EN' Det bruges til at matche det bestemte tegn i starten af ​​strengen. Det fungerer ligesom '^'-tegnet.
'\b', '\B' '\b' bruges til at matche den streng, der indeholder det særlige tegn eller ord i begyndelsen eller slutningen af ​​strengen. '\B' virker modsat '\b'.
'\d', '\D' '\d' bruges til at matche decimaltallet i strengen, der ligner '[0-9]'. '\D' virker modsat '\d'.
'\s', '\S' '\s' bruges til at matche mellemrummet i strengen, der ligner '[\n\t\r\v]'. '\S' virker modsat '\s'.
'\w', '\W' '\w' bruges til at matche de alfabetiske og numeriske tegn i strengen. '\W' virker modsat '\w'.
'\MED' Det bruges til at matche det bestemte tegn i slutningen af ​​strengen. Det fungerer ligesom '$'-tegnet.

Eksempel 1: Match strengen ved hjælp af Match()-funktionen

Match()-funktionen bruges til at matche et regex-mønster i begyndelsen af ​​strengen. Syntaksen for denne funktion er givet som følger:



Syntaks:

re.match ( mønster, snor, flag = 0 )

Her bruges det første argument til at definere regex-mønsteret. Det andet argument bruges til at definere hovedstrengen. Det tredje argument er valgfrit og bruges til at definere forskellige typer flag.

Opret en Python-fil med følgende script, der matcher et regex-mønster med en defineret streng ved hjælp af match()-funktionen. Først bruges et defineret regex-mønster til at matche. Dernæst tages et søgeord fra brugeren og bruges som et regex-mønster for at matche med strengværdien. Hvis der findes et match, udskrives søgeordet. Ellers udskrives strengen 'Ingen matchende værdi fundet'.

#Importer nødvendigt modul
import vedr

#Definer funktionen til at udskrive det matchende resultat
def matchString ( ) :
#Tjek returværdien af ​​match()-funktionen
hvis sammen med ! = Ingen:
Print ( ''' + mat.gruppe ( ) + '' findes i '' + strVærdi + ''' )
andet:
Print ( 'Ingen matchende værdi fundet.' )

#Definer strengværdien
strVærdi = 'Først ind først ud.'
#Match strengen ud fra mønsteret
mat = gen.match ( '^Først' , strVærdi )
#Call-funktion for at udskrive kampresultatet
matchString ( )

#Tag søgestrengen
inValue = input ( 'Indtast søgeværdien: ' )
mat = gen.match ( inValue + , strValue )
#Call-funktion for at udskrive kampresultatet
matchString ( )

Følgende output vises for den 'første' inputværdi:

Eksempel 2: Find strengen ved hjælp af Findall()-funktionen

Findall()-funktionen bruges til at returnere alle matchende ord, der findes i hovedstrengen, som en tupel.

Syntaks:

re.findall ( mønster, snor, flag = 0 )

Her bruges det første argument til at definere regex-mønsteret. Det andet argument bruges til at definere hovedstrengen. Det tredje argument er valgfrit og bruges til at definere forskellige typer flag.

Opret en Python-fil med følgende script, der tager en hovedstrengværdi og en søgestrengværdi fra brugeren. Brug derefter søgeordet i regex-mønsteret til at finde søgeordet i hovedstrengen. Antallet af samlede matchninger udskrives i outputtet.

#Importer nødvendigt modul
import vedr

#Tag en strengværdi
inValue = input ( 'Indtast en streng: ' )

#Tag et søgeord
srcValue = input ( 'Indtast et søgeord: ' )

#Søg efter ordet i strengen
srcResult = re.findall ( srcValue + '\I*' , inVærdi )
#Udskriv søgeresultatet
Print ( 'Ordet '' + srcValue + '' findes i strengen'
+ str ( kun ( srcResultat ) ) + ' gange.' )

Ifølge outputtet findes søgeordet 'spis' to gange i hovedstrengen 'Vi spiser for at leve og lever ikke for at spise'.

Eksempel 3: Søg i strengen ved hjælp af Search()-funktionen

Search() er en anden funktion til at søge efter et bestemt mønster i en strengværdi. Den indeholder de samme argumenter som match() og findall() funktionerne. Opret en Python-fil med følgende script, der søger efter ordet 'Python' i en strengværdi, der vil blive taget fra brugeren. Hvis søgeordet findes i inputværdien, udskrives en succesmeddelelse. Ellers udskrives en fejlmeddelelse.

#Importer re modul
import vedr

#Tag en strengværdi
inValue = input ( 'Indtast en streng: ' )
#Søg efter det bestemte ord i strengværdien
srcResult = re.search ( r 'Python\w*' , inVærdi )

#Tjek, at søgeordet er fundet eller ej
hvis srcResultat:
Print ( ''' + srcResult.group ( ) + '' findes i '' + inVærdi + ''' )
andet:
Print ( 'Søgestrengen blev ikke fundet.' )

Produktion:

Følgende output vises, hvis inputstrengen er 'Jeg kan lide Python-programmering':

Følgende output vises, hvis inputstrengen er 'Jeg kan lide PHP-programmering':

Eksempel 4: Erstat strengen ved hjælp af Sub()-funktionen

Sub()-funktionen bruges til at søge i en bestemt streng baseret på mønsteret og erstatte det med et andet ord. Syntaksen for denne funktion er givet som følger:

Syntaks:

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

Det første argument i denne funktion indeholder det mønster, der bruges til at søge i den bestemte streng i hovedstrengen.

Det andet argument for denne funktion indeholder strengværdien 'erstat'.

Det tredje argument for denne funktion indeholder hovedstrengen.

Denne funktion returnerer den erstattede streng, hvis der findes et matchende ord i hovedstrengen baseret på det første argument.

Opret en Python-fil med følgende script, der søger efter to cifre i slutningen af ​​strengen. Hvis strengen indeholder to cifre i slutningen, erstattes cifrene med '$50'-strengen.

#Importer re modul
import vedr

#Definer hovedstrengen
strVærdi = 'Bogens pris er 70'

#Definer søgemønsteret
mønster = '[0-9]{2}'

#Definer erstatningsværdien
replaceValue = '$50'

#Søg og erstat strengen baseret på mønsteret
modified_strValue = re.sub ( mønster, replaceValue, strValue )
#Udskriv de originale og ændrede strengværdier
Print ( 'Original streng: ' + strVærdi )
Print ( 'Ændret streng: ' + modified_strValue )

Produktion:

Der var 70 i slutningen af ​​hovedstrengen. Så 70'eren erstattes af $50 i den erstattede streng.

Eksempel 5: Erstat strengen ved hjælp af Subn()-funktionen

Subn()-funktionen fungerer ligesom sub()-funktionen, bortset fra at den returnerer output som en tupel, hvor det første indeks indeholder den erstattede værdi, og det andet indeks indeholder det samlede antal matches.

Opret en Python-fil med følgende script, der søger efter alfabeterne A til L i 'LinuxHint.com'-strengen ved hjælp af subn()-funktionen:

#Importer re modul
import vedr

#Definer hovedstrengen
strVærdi = 'LinuxHint.com'

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

#Definer erstatningsværdien
replaceValue = '*'

#Søg og erstat strengen baseret på mønsteret
modified_strValue = re.subn ( mønster, replaceValue, strValue )
#Udskriv den originale streng og outputtet af subn()
Print ( 'Original streng: \n ' + strVærdi )
Print ( 'Output af subn() funktion: ' )
Print ( modified_strValue )

Produktion:

Ifølge følgende output erstattes 'L'- og 'H'-tegnene med '*'-tegnet.

Eksempel 6: Split strengen ved hjælp af Split()-funktionen

Opret en Python-fil med følgende script, der brugte split()-funktionen til at opdele hovedstrengen i flere dele baseret på regex-mønsteret:

#Importer re modul
import vedr

#Definer strengværdi
strVal= 'Rupa Akter; Nira Chowdhury; Mazharul Islam'
#Definer det mønster, der skal bruges til at opdele dataene
mønster = '[^A-Za-z ]'
#Gem de opdelte værdier på en liste
split_result = re.split ( mønster, strVal )
Print ( 'Output af split()-funktionen:' )
Print ( split_result )

Produktion:

Ifølge outputtet er hovedstrengen opdelt i tre dele baseret på '[^A-Za-z ]'-mønsteret, der bruges i scriptet.

Konklusion

Formålet med de mest almindeligt anvendte metategn, intervaller og Python indbyggede funktioner til at søge, erstatte og opdele strengene er vist i denne tutorial ved hjælp af simple Python-scripts.