Python Regex Exempel

Python Regex Exempel



Den fullständiga formen av regex är reguljärt uttryck. Det är en viktig funktion i alla programmeringsspråk. Det är ett strängmönster som används för att matcha, söka eller ersätta strängarna i ett strängvärde. Regex-mönstret kan användas i Python-skriptet med 're'-modulen i Python. Den här modulen har många typer av funktioner för att göra olika strängoperationer. Olika metatecken och speciella sekvenser används för att definiera regexmönstren för att söka eller ersätta uppgifterna. Syftet med att använda några vanligt använda metatecken, speciella sekvenser och regexmetoder i Python-skriptet visas i denna handledning.

Några vanligt använda metatecken i regex:









Tecken Syfte
'+' Den används för att matcha en eller flera förekomster av ett visst tecken i en sträng.
'*' Den används för att matcha noll eller fler förekomster av ett visst tecken i en sträng.
'?' Den används för att matcha noll eller en förekomst av ett visst tecken i en sträng.
'^' Den används för att matcha det speciella tecknet eller strängen i början av strängen.
'$' Den används för att matcha det speciella tecknet eller strängen i slutet av strängen.
'|' Den används för att matcha någon av de flera strängarna i en sträng. Det fungerar som ELLER-logiken.
'[]' Den används för att matcha ett antal tecken.
'{}' Den används för att matcha ett visst antal tecken.



Några vanliga specialsekvenser i regex:





Sekvenser Syfte
'\A' Den används för att matcha det speciella tecknet i början av strängen. Det fungerar som tecknet '^'.
'\b', '\B' '\b' används för att matcha strängen som innehåller det specifika tecknet eller ordet i början eller slutet av strängen. '\B' fungerar motsatsen till '\b'.
'\d', '\D' '\d' används för att matcha decimaltalet i strängen som liknar '[0-9]'. '\D' fungerar motsatsen till '\d'.
'\s', '\S' '\s' används för att matcha blanksteg i strängen som liknar '[\n\t\r\v]'. '\S' fungerar motsatsen till '\s'.
'\w', '\W' '\w' används för att matcha de alfabetiska och numeriska tecknen i strängen. '\W' fungerar motsatsen till '\w'.
'\MED' Den används för att matcha det speciella tecknet i slutet av strängen. Det fungerar som tecknet '$'.

Exempel 1: Matcha strängen med hjälp av Match()-funktionen

Match()-funktionen används för att matcha ett regexmönster i början av strängen. Syntaxen för denna funktion ges enligt följande:



Syntax:

returmatch ( mönster, sträng, flaggor = 0 )

Här används det första argumentet för att definiera regexmönstret. Det andra argumentet används för att definiera huvudsträngen. Det tredje argumentet är valfritt och används för att definiera olika typer av flaggor.

Skapa en Python-fil med följande skript som matchar ett regexmönster med en definierad sträng med hjälp av match()-funktionen. Först används ett definierat regexmönster för att matcha. Därefter tas ett sökord från användaren och används som ett regexmönster för att matcha strängvärdet. Om någon matchning hittas skrivs sökordet ut. Annars skrivs strängen 'Inget matchande värde hittades' ut.

#Importera nödvändig modul
import ang

#Definiera funktionen för att skriva ut det matchande resultatet
def matchString ( ) :
#Kontrollera returvärdet för match()-funktionen
om tillsammans med ! = Inga:
skriva ut ( ''' + matt.grupp ( ) + '' finns i '' + strValue + ''' )
annan:
skriva ut ( 'Inget matchande värde hittades.' )

#Definiera strängvärdet
strValue = 'Först in först ut.'
# Matcha strängen baserat på mönstret
matta = re.match ( '^Först' , strVärde )
#Call-funktion för att skriva ut matchresultatet
matchString ( )

#Ta söksträngen
inValue = input ( 'Ange sökvärdet:' )
matta = re.match ( inValue + , strValue )
#Call-funktion för att skriva ut matchresultatet
matchString ( )

Följande utgång visas för det 'första' ingångsvärdet:

Exempel 2: Hitta strängen med Findall()-funktionen

Findall()-funktionen används för att returnera alla matchande ord som finns i huvudsträngen som en tupel.

Syntax:

re.findall ( mönster, sträng, flaggor = 0 )

Här används det första argumentet för att definiera regexmönstret. Det andra argumentet används för att definiera huvudsträngen. Det tredje argumentet är valfritt och används för att definiera olika typer av flaggor.

Skapa en Python-fil med följande skript som tar ett huvudsträngvärde och ett söksträngsvärde från användaren. Använd sedan sökordet i regexmönstret för att hitta sökordet i huvudsträngen. Antalet totala träffar skrivs ut i utgången.

#Importera nödvändig modul
import ang

#Ta ett strängvärde
inValue = input ( 'Ange en sträng:' )

#Ta ett sökord
srcValue = input ( 'Ange ett sökord: ' )

#Sök efter ordet i strängen
srcResult = re.findall ( srcValue + '\I*' , i värde )
#Skriv ut sökresultatet
skriva ut ( 'Ordet '' + srcValue + '' finns i strängen'
+ str ( endast ( srcResult ) ) + ' gånger.' )

Enligt resultatet finns sökordet 'äta' två gånger i huvudsträngen 'Vi äter för att leva och lever inte för att äta'.

Exempel 3: Sök efter strängen med hjälp av Search()-funktionen

Search() är en annan funktion för att söka efter ett visst mönster i ett strängvärde. Den innehåller samma argument som match()- och findall()-funktionerna. Skapa en Python-fil med följande skript som söker efter ordet 'Python' i ett strängvärde som kommer att tas från användaren. Om sökordet finns i inmatningsvärdet skrivs ett framgångsmeddelande ut. Annars skrivs ett felmeddelande ut.

#Importera re modul
import ang

#Ta ett strängvärde
inValue = input ( 'Ange en sträng:' )
#Sök efter det specifika ordet i strängvärdet
srcResult = re.search ( r 'Python\w*' , i värde )

#Kontrollera att sökordet hittas eller inte
om srcResultat:
skriva ut ( ''' + srcResult.group ( ) + '' finns i '' + inVärde + ''' )
annan:
skriva ut ( 'Söksträngen hittades inte.' )

Produktion:

Följande utdata visas om ingångssträngen är 'Jag gillar Python-programmering':

Följande utdata visas om indatasträngen är 'Jag gillar PHP-programmering':

Exempel 4: Ersätt strängen med funktionen Sub()

Funktionen sub() används för att söka efter en viss sträng baserat på mönstret och ersätta den med ett annat ord. Syntaxen för denna funktion ges enligt följande:

Syntax:

re.sub ( mönster, ersätt_sträng, huvudsträng )

Det första argumentet för den här funktionen innehåller mönstret som används för att söka efter den specifika strängen i huvudsträngen.

Det andra argumentet för denna funktion innehåller strängvärdet 'ersätt'.

Det tredje argumentet för denna funktion innehåller huvudsträngen.

Denna funktion returnerar den ersatta strängen om något matchande ord finns i huvudsträngen baserat på det första argumentet.

Skapa en Python-fil med följande skript som söker efter två siffror i slutet av strängen. Om strängen innehåller två siffror i slutet, ersätts siffrorna med strängen '$50'.

#Importera re modul
import ang

#Definiera huvudsträngen
strValue = 'Bokpriset är 70'

#Definiera sökmönstret
mönster = '[0-9]{2}'

#Definiera ersättningsvärdet
replaceValue = '$50'

#Sök och ersätt strängen baserat på mönstret
modified_strValue = re.sub ( mönster, replaceValue, strValue )
#Skriv ut de ursprungliga och modifierade strängvärdena
skriva ut ( 'Original sträng: ' + strVärde )
skriva ut ( 'Ändrad sträng: ' + modified_strValue )

Produktion:

Det var 70 i slutet av huvudsträngen. Så 70 ersätts av $50 i den ersatta strängen.

Exempel 5: Byt ut strängen med funktionen Subn()

Subn()-funktionen fungerar som sub()-funktionen, förutom att den returnerar utdata som en tuppel där det första indexet innehåller det ersatta värdet och det andra indexet innehåller det totala antalet matchningar.

Skapa en Python-fil med följande skript som söker efter alfabeten A till L i 'LinuxHint.com'-strängen med hjälp av subn()-funktionen:

#Importera re modul
import ang

#Definiera huvudsträngen
strValue = 'LinuxHint.com'

#Definiera sökmönstret
mönster = '[TILL]'

#Definiera ersättningsvärdet
replaceValue = '*'

#Sök och ersätt strängen baserat på mönstret
modified_strValue = re.subn ( mönster, replaceValue, strValue )
#Skriv ut den ursprungliga strängen och utdata från subn()
skriva ut ( 'Original sträng: \n ' + strVärde )
skriva ut ( 'Utdata från subn()-funktionen: ' )
skriva ut ( modified_strValue )

Produktion:

Enligt följande utdata ersätts tecknen 'L' och 'H' med tecknet '*'.

Exempel 6: Dela strängen med Split()-funktionen

Skapa en Python-fil med följande skript som använde split()-funktionen för att dela upp huvudsträngen i flera delar baserat på regexmönstret:

#Importera re modul
import ang

#Definiera strängvärde
strVal= 'Rupa Akter; Nira Chowdhury; Mazharul Islam'
#Definiera mönstret som ska användas för att dela upp data
mönster = '[^A-Za-z ]'
#Lagra de delade värdena i en lista
split_result = re.split ( mönster, strVal )
skriva ut ( 'Utdata från split()-funktionen:' )
skriva ut ( split_result )

Produktion:

Enligt utgången är huvudsträngen uppdelad i tre delar baserat på '[^A-Za-z ]'-mönstret som används i skriptet.

Slutsats

Syftet med de mest använda metatecken, intervall och Python inbyggda funktioner för att söka, ersätta och dela strängarna visas i denna handledning med enkla Python-skript.