Bevezetés a reguláris kifejezésekbe Pythonban
A reguláris kifejezések parancsok összetett kereséshez és cserehez (vagy egyszerűen kereséshez). Lehetővé teszik nagyon érdekes dolgok végrehajtását, de sajnos meglehetősen nehéz elsajátítani őket.
Ahhoz, hogy elkezdhesd a reguláris kifejezésekkel való munkát
Pythonban, importálnunk kell egy speciális
re modult:
import re
A re modul olyan módszereket tartalmaz,
amelyek a reguláris kifejezések kezelésére szolgálnak.
Egy reguláris kifejezés
parancsok halmaza, és kétféle
karakterből áll: olyanokból, amelyek
önmagukat jelentik, és parancs-karakterekből,
amelyeket speciális karaktereknek nevezünk.
A reguláris kifejezésekkel való ismerkedést legjobban
a sub metódus példáján kezdhetjük, amely
helyettesítésre szolgál egy karakterláncban. Az első
paraméterben megadja, mit kell cserélni,
a másodikban - mire kell cserélni. A harmadik paraméterben
annak a karakterláncnak a megadása történik, amelyben a
helyettesítést el kell végezni. A negyedik, opcionális paraméterben
a helyettesítések számát adhatjuk meg.
A legegyszerűbb
helyettesítés ezzel a módszerrel
így néz ki:
res = re.sub('a', '!', 'bab')
print(res) # kiírja 'b!b'
Amint észrevetted, a reguláris kifejezésben
a betűk önmagukat jelentik. Ugyanez
érvényes a számjegyekre is. Cseréljük le a
2 számjegyet !-ra:
res = re.sub('2', '!', '12abc3')
print(res) # kiírja '1!abc3'
Viszont a pont speciális karakter
és bármely karaktert jelent. A következő
példában keressünk egy részkarakterláncot a következő
mintával: 'x' betű,
majd bármely karakter,
majd ismét 'x' betű:
res = re.sub('x.x', '!', 'xax eee')
print(res) # kiírja '! eee'
Adott a következő karakterlánc:
txt = 'ahb acb aeb aeeb adcb axeb'
Írj reguláris kifejezést, amely megtalálja a
'ahb', 'acb', 'aeb'
karakterláncokat a következő minta szerint: 'a' betű, bármely
karakter, 'b' betű.
Adott a következő karakterlánc:
txt = 'aba aca aea abba adca abea'
Írj reguláris kifejezést, amely megtalálja a
'abba', 'adca', 'abea'
karakterláncokat a következő minta szerint: 'a' betű, 2
bármilyen karakter, 'a' betű.
Adott a következő karakterlánc:
txt = 'aba aca aea abba adca abea'
Írj reguláris kifejezést, amely megtalálja a
'abba' és 'abea' karakterláncokat, anélkül, hogy
'adca'-t is megtalálná.