Introduktion till reguljära uttryck i Python
Reguljära uttryck är kommandon för avancerad sökning och ersättning (eller bara sökning). De låter dig göra väldigt intressanta saker, men är tyvärr ganska svåra att lära sig.
För att börja arbeta med reguljära uttryck
i Python måste vi importera en speciell
modul re:
import re
Modulen re innehåller metoder
avsedda för att arbeta med reguljära
uttryck. Ett reguljärt uttryck
är en uppsättning kommandon och består
av två typer av tecken: de som
betecknar sig själva och de som är kommandon,
som kallas specialtecken.
Bekantskap med reguljära uttryck är bäst
att börja med ett exempel på metoden sub, som
används för ersättningar i en sträng. Den första
parametern tar vad som ska ersättas,
den andra - med vad. I den tredje parametern
anger vi strängen där ersättningen ska göras.
I den fjärde valfria parametern
sätter vi antalet ersättningar. Den enklaste
ersättningen med denna metod kommer att
se ut så här:
res = re.sub('a', '!', 'bab')
print(res) # skriver ut 'b!b'
Som du märkte betecknar bokstäver
sig själva i det reguljära uttrycket.
Detsamma gäller för siffror. Låt oss ersätta siffran
2 med !:
res = re.sub('2', '!', '12abc3')
print(res) # skriver ut '1!abc3'
Däremot är en punkt ett specialtecken
och betyder vilket tecken som helst. I nästa
exempel låt oss hitta en delsträng med följande
mönster: bokstaven 'x', sedan vilket
tecken som helst, sedan bokstaven 'x' igen:
res = re.sub('x.x', '!', 'xax eee')
print(res) # skriver ut '! eee'
Given en sträng:
txt = 'ahb acb aeb aeeb adcb axeb'
Skriv ett reguljärt uttryck som hittar strängarna
'ahb', 'acb', 'aeb'
enligt mönstret: bokstaven 'a', vilket
tecken som helst, bokstaven 'b'.
Given en sträng:
txt = 'aba aca aea abba adca abea'
Skriv ett reguljärt uttryck som hittar strängarna
'abba', 'adca', 'abea'
enligt mönstret: bokstaven 'a', 2
valfria tecken, bokstaven 'a'.
Given en sträng:
txt = 'aba aca aea abba adca abea'
Skriv ett reguljärt uttryck som hittar strängarna
'abba' och 'abea', utan att fånga
'adca'.