Pytonorm

Regular Expressions i Python

Regular Expressions i Python
I den här artikeln tar vi en kort titt på reguljära uttryck i python. Vi kommer att arbeta med inbyggda funktioner med exempel följt av en tabell som förklarar vad varje karaktär betyder i reguljärt uttryck för en bättre förståelse.

Vad är ett vanligt uttryck?

Innan vi går mot praktiska exempel måste vi veta vad ett regelbundet uttryck egentligen är. Ett reguljärt uttryck är en sekvens av tecken som definierar strukturen för en inmatning eller ett sökmönster. Tänk dig att lägga in ett e-postmeddelande eller lösenord på någon slumpmässig webbplats som Facebook, Twitter eller Microsoft. Försök sätta det fel och med fel menar jag att gå emot deras konvention. Det kommer tydligt att påpeka dessa fel för dig. Du får inte gå till nästa steg förrän din inmatning matchar det mönster som de har ställt in i backend. Det specifika mönstret, som begränsar dig från att lägga någon form av ytterligare eller irrelevant information, kallas regex eller reguljärt uttryck.

Regular Expressions i Python

Regelbundna uttryck spelar ingen annan roll i python som i andra programmeringsspråk. Python innehåller modulen re vilket ger fullt stöd för användningen av reguljära uttryck. Varje gång en olämplig eller omatchbar information matas in eller någon form av fel inträffar, detta re modulen kommer att fånga det som ett undantag som i slutändan hjälper till att lösa de nödvändiga problemen.

Regular Expressions mönster

Det finns många tecken tillgängliga skrivna i en sekvens som gör ett specifikt mönster för reguljära uttryck. Förutom kontrolltecken, (+ ? . * ^ $ () [] | \), alla karaktärer matchar sig själva. Kontrolltecken kan dock undvikas genom att skriva om en backslash.

Följande är en tabell som består av ett mönster och en beskrivning av hur de arbetar i python.

Mönster Beskrivning
[Pp] ython Matcha “Python” eller “python”
Badkar [Ee] Matcha "TubE" eller "Tube"
[aeiou] Matcha alla små bokstäver
[0-9] Matcha alla siffror mellan 0 och 9
[a-z] Matcha alla små ASCII-bokstäver
[A-Z] Matcha alla stora ASCII-bokstäver
[a-zA-Z0-9] Matcha alla små och stora ASCII-bokstäver
eller en siffra mellan 0 och 9
[^ aeiou] Matcha allt men inte små vokaler
[^ 0-9] Matcha allt men inte siffra
. Matcha alla karaktärer utom den nya raden
\ d Matcha vilken siffra som helst: [0-9]
\ D Matcha en icke-siffra: [^ 0-9]
\ s Matcha vita utrymmen
\ S Matcha icke-vita utrymmen
\ A Matcha början på strängen
\ Z Matcha slutet på strängen
\ w Matcha ordtecken
\ W Matcha icke-ordstecken
[…] Matcha varje enskild karaktär inom parentes
[^…] Matcha varje enskilt tecken som inte är inom parentes
$ Matcha slutet på raden
^ Matcha början på raden

Match- och sökfunktioner i Python

Nu ska vi se två exempel med de två inbyggda funktionerna som finns i python. En är matchning och den andra är sökfunktion. Båda tar samma parametrar som är följande:

Innan vi hoppar in i exempel är här en annan sak som du behöver veta. Två metoder kan användas för att få matchande grupper som är följande:

Vad som händer är att när matchnings- eller sökfunktioner används gör det undergrupper av alla relaterade mönster som finns i strängar och strukturerar dem vid positioner som börjar från 0. Se exemplet nedan för att få en bättre uppfattning.

Matchfunktion (exempel)

I följande exempel har vi tagit en lista där vi har använt ett reguljärt uttryck som kontrollerar orden som börjar med bokstaven 'a' och endast markerar om båda orden börjar med samma bokstav i.e.: 'a'.

importera om
arraylist = ["affection affect", "affection act", "affection Programming"]
för element i arraylista:
k = re.match ("(a \ w +) \ W (g \ w +)", element)
om k:
skriva ut ((z.grupper ()))

Produktion:

('tillgivenhet', 'påverkan')
('tillgivenhet', 'handling')

Tredje elementet i listan kommer inte att beaktas eftersom det inte matchar regex som säger att båda orden ska börja med 'a'.

Sökfunktion (exempel)

Denna funktion skiljer sig från matchningen. Sök söker igenom hela meningen medan matchningen inte gör det. I följande exempel är sökmetoden lyckad men matchningsfunktionen inte.

importera om
Input = “DocumentationNew”
v = re.sök (“(ta.*)", Inmatning)
om v:
skriva ut (“resultat:” v.grupp 1))

Produktion:

resultat: tationNew

'ta.* 'betyder allt efter' ta 'som ger oss vårt resultat som' tationNew 'från den sökte Input "DocumentationNew".

Slutsats

Regular Expressions är avgörande för alla programutvecklare och nu kan du enkelt se hur man använder Regular Expressions i Python-programmeringsspråket.

Bästa spelkonsolemulatorer för Linux
Den här artikeln listar populära spelkonsolemuleringsprogram som finns tillgängliga för Linux. Emulation är ett mjukvarukompatibilitetsskikt som emule...
Bästa Linux Distros för spel 2021
Linux-operativsystemet har kommit långt från sitt ursprungliga, enkla, serverbaserade utseende. Detta operativsystem har förbättrats enormt de senaste...
Hur du fångar och strömmar din spelsession på Linux
Tidigare betraktades spel bara som en hobby, men med tiden såg spelindustrin en enorm tillväxt när det gäller teknik och antalet spelare. Spelpubliken...