Karakterismétlési operátorok
Vannak helyzetek, amikor meg kell adni, hogy egy
karakter adott számú alkalommal ismétlődik.
Ha a pontos ismétlődésszám ismeretlen,
akkor egyszerűen többször leírhatjuk -
'aaaa'. De mit tegyünk, ha ezt kell
mondanunk: ismételjük egy vagy többször?
Erre vannak az ismétlési operátorok
(kvantifikátorok): plusz + (egy vagy többször),
csillag * (nulla vagy többször)
és kérdőjel ? (nulla vagy egyszer).
Ezek az operátorok az előttük álló
karakterre vonatkoznak.
Nézzük meg ezeknek az operátoroknak a működését példákon keresztül.
Példa
Keressük meg az összes részkarakterláncot a 'x' betű,
'a' betű egy vagy többször,
'x' betű minta szerint:
txt = 'xx xax xaax xaaax xbx'
res = re.sub('xa+x', '!', txt)
print(res)
A kód végrehajtásának eredménye:
'xx ! ! ! xbx'
Példa
Keressük meg az összes részkarakterláncot a 'x' betű,
'a' betű nulla vagy többször,
'x' betű minta szerint:
txt = 'xx xax xaax xaaax xbx'
res = re.sub('xa*x', '!', txt)
print(res)
A kód végrehajtásának eredménye:
'! ! ! ! xbx'
Példa
Keressük meg az összes részkarakterláncot a 'x' betű,
'a' betű nulla vagy egyszer,
'x' betű minta szerint:
txt = 'xx xax xaax xbx'
res = re.sub('xa?x', '!', txt)
print(res)
A kód végrehajtásának eredménye:
'! ! xaax xbx'
Gyakorlati feladatok
Adott egy karakterlánc:
txt = 'aa aba abba abbba abca abea'
Írjon reguláris kifejezést, amely megtalálja a
'aba', 'abba', 'abbba'
karakterláncokat a következő minta szerint: 'a' betű,
'b' betű tetszőleges számú alkalommal, 'a' betű.
Adott egy karakterlánc:
txt = 'aa aba abba abbba abca abea'
Írjon reguláris kifejezést, amely megtalálja a
'aa', 'aba', 'abba',
'abbba' karakterláncokat a következő minta szerint: 'a' betű,
'b' betű tetszőleges számú alkalommal (beleértve a nulla alkalommal is), 'a' betű.
Adott egy karakterlánc:
txt = 'aa aba abba abbba abca abea'
Írjon reguláris kifejezést, amely megtalálja a
'aa', 'aba' karakterláncokat a következő minta szerint:
'a' betű, 'b' betű egyszer
vagy egyszer sem, 'a' betű.
Adott egy karakterlánc:
txt = 'aa aba abba abbba abca abea'
Írjon reguláris kifejezést, amely megtalálja a
'aa', 'aba', 'abba',
'abbba' karakterláncokat anélkül, hogy elkapná a 'abca'
és 'abea' karakterláncokat.