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ű:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)

print(res)

A kód végrehajtásának eredménye:

python'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ű:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)

print(res)

A kód végrehajtásának eredménye:

python'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ű:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)

print(res)

A kód végrehajtásának eredménye:

python'xx xax xaax !'

Példa

Ebben a példában a keresési minta így néz ki: 'a' betű tízszer:

pythontxt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)

print(res)

A kód végrehajtásának eredménye:

python'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ő:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)

print(res)

A kód végrehajtásának eredménye:

python'! ! ! !'

Példa

A 3 előtti nulla is megengedett:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)

print(res)

A kód végrehajtásának eredménye:

python'! ! ! !'

Gyakorlati feladatok

Задание 1

Adott egy sztring:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

Írjon reguláris kifejezést, amely megtalálja a 'abba', 'abbba', 'abbbba' sztringeket és csak azokat.

Задание 2

Adott egy sztring:

pythontxt = '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).

Задание 3

Adott egy sztring:

pythontxt = '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).