Kapcsos zárójelek a Python reguláris kifejezéseiben
A '+', '*', '?' operátorok
jók, azonban velük nem lehet megadni
egy konkrét ismétlődési számot. Ebben az esetben
a {} operátor segít.
A működése a következő: {5}
- öt ismétlés, {2,5} – két és öt közötti ismétlés (mindkettőt beleértve), {2,}
- kétszer vagy többször ismétlődik. Nézze meg a
példákat:
Példa
Ebben a példában a keresési minta így néz ki:
'x' betű, 'a' betű
egyszer vagy kétszer, 'x' betű:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)
print(res)
A kód végrehajtásának eredménye:
'xx ! ! xaaax'
Példa
Ebben a példában a keresési minta így néz ki:
'x' betű, 'a' betű
két alkalommal vagy többször, 'x' betű:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)
print(res)
A kód végrehajtásának eredménye:
'xx xax ! !'
Példa
Ebben a példában a keresési minta így néz ki:
'x' betű, 'a' betű
háromszor, 'x' betű:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)
print(res)
A kód végrehajtásának eredménye:
'xx xax xaax !'
Példa
Ebben a példában a keresési minta így néz ki:
'a' betű tízszer:
txt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)
print(res)
A kód végrehajtásának eredménye:
'aaa ! aaa'
Példa
Ebben a példában van egy ilyen minta: 'x'
betű, 'a' betű háromszor vagy kevesebbszer,
'x' betű. Ennek megvalósításához
a 3 szám elé nem kell számot megadni,
elég egy egyszerű vessző:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)
print(res)
A kód végrehajtásának eredménye:
'! ! ! !'
Példa
A 3 előtti nulla is megengedett:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)
print(res)
A kód végrehajtásának eredménye:
'! ! ! !'
Gyakorlati feladatok
Adott egy sztring:
txt = 'aa aba abba abbba abbbba abbbbba'
Írjon reguláris kifejezést, amely megtalálja a
'abba', 'abbba', 'abbbba'
sztringeket és csak azokat.
Adott egy sztring:
txt = 'aa aba abba abbba abbbba abbbbba'
Írjon reguláris kifejezést, amely megtalálja a
'aba' típusú sztringeket, amelyekben a 'b'
kevesebb, mint 3 alkalommal fordul elő (beleértve).
Adott egy sztring:
txt = 'aa aba abba abbba abbbba abbbbba'
Írjon reguláris kifejezést, amely megtalálja a
'aba' típusú sztringeket, amelyekben a 'b'
több, mint 4 alkalommal fordul elő (beleértve).