Johdonatus Pythonin säännöllisiin lausekkeisiin
Säännölliset lausekkeet ovat komennot monimutkaista etsimistä ja korvaamista varten (tai pelkästään etsimistä). Ne mahdollistavat erittäin mielenkiintoisten asioiden tekemisen, mutta valitettavasti ne ovat melko vaikeita hallita.
Aloittaaksesi säännöllisten lausekkeiden kanssa työskentelyn
Pythonissa, meidän on tuotava erikois
moduuli re:
import re
Moduuli re sisältää menetelmiä,
jotka on tarkoitettu säännöllisten lausekkeiden
käsittelyyn. Säännöllinen lauseke
edustaa komentosarjaa ja koostuu
kahden tyyppisistä merkeistä: niistä, jotka
edustavat itseään, ja komennusmerkeistä,
jotka ovat nimeltään erikoismerkit.
Paras tapa tutustua säännöllisiin lausekkeisiin on
aloittaa esimerkillä menetelmästä sub, jota
käytetään korvauksiin merkkijonossa. Ensimmäisenä
parametrina menetelmä ottaa mitä korvata,
toisena - millä korvata. Kolmannessa parametrissa
ilmoitetaan merkkijono, jossa korvaus on tehtävä.
Neljännessä valinnaisessa parametrissä
asetetaan korvausten määrä. Yksinkertaisin
korvaus tällä menetelmällä näyttää
tältä:
res = re.sub('a', '!', 'bab')
print(res) # tulostaa 'b!b'
Kuten huomasit, säännöllisessä lausekkeessa
kirjaimet edustavat itseään. Sama
pätee numeroihin. Korvataan numero
2 merkillä !:
res = re.sub('2', '!', '12abc3')
print(res) # tulostaa '1!abc3'
Mutta piste on erikoismerkki
ja se tarkoittaa mitä tahansa merkkiä. Seuraavassa
esimerkissä etsitään merkkijono seuraavan
muotin mukaan: kirjain 'x', sitten mikä tahansa
merkki, sitten taas kirjain 'x':
res = re.sub('x.x', '!', 'xax eee')
print(res) # tulostaa '! eee'
Annettu merkkijono:
txt = 'ahb acb aeb aeeb adcb axeb'
Kirjoita säännöllinen lauseke, joka löytää merkkijonot
'ahb', 'acb', 'aeb'
muotin mukaan: kirjain 'a', mikä tahansa
merkki, kirjain 'b'.
Annettu merkkijono:
txt = 'aba aca aea abba adca abea'
Kirjoita säännöllinen lauseke, joka löytää merkkijonot
'abba', 'adca', 'abea'
muotin mukaan: kirjain 'a', 2
mitä tahansa merkkiä, kirjain 'a'.
Annettu merkkijono:
txt = 'aba aca aea abba adca abea'
Kirjoita säännöllinen lauseke, joka löytää merkkijonot
'abba' ja 'abea', olematta sieppaamatta
'adca'.