Accolades dans les expressions régulières Python

Les opérateurs '+', '*', '?' sont utiles, cependant, ils ne permettent pas de spécifier un nombre exact de répétitions. Dans ce cas, l'opérateur {} viendra à votre rescousse.

Il fonctionne comme suit : {5} - cinq répétitions, {2,5} – se répète de deux à cinq fois (inclus), {2,} - se répète deux fois ou plus. Regardez les exemples :

Exemple

Dans cet exemple, le modèle de recherche est le suivant : lettre 'x', lettre 'a' une ou deux fois, lettre 'x' :

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

print(res)

Résultat de l'exécution du code :

python'xx ! ! xaaax'

Exemple

Dans cet exemple, le modèle de recherche est le suivant : lettre 'x', lettre 'a' deux fois ou plus, lettre 'x' :

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

print(res)

Résultat de l'exécution du code :

python'xx xax ! !'

Exemple

Dans cet exemple, le modèle de recherche est le suivant : lettre 'x', lettre 'a' trois fois, lettre 'x' :

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

print(res)

Résultat de l'exécution du code :

python'xx xax xaax !'

Exemple

Dans cet exemple, le modèle de recherche est le suivant : lettre 'a' dix fois :

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

print(res)

Résultat de l'exécution du code :

python'aaa ! aaa'

Exemple

Dans cet exemple, il y a un modèle comme : lettre 'x', lettre 'a' trois fois ou moins, lettre 'x'. Pour le réaliser, avant le chiffre 3 on peut ne pas indiquer de nombre, et mettre simplement une virgule :

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

print(res)

Résultat de l'exécution du code :

python'! ! ! !'

Exemple

Zéro avant 3 est également autorisé :

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

print(res)

Résultat de l'exécution du code :

python'! ! ! !'

Tâches pratiques

Задание 1

Une chaîne est donnée :

pythontxt = 'aa aba abba abbba abbbba abbbbba'

Écrivez une expression régulière qui trouvera les chaînes 'abba', 'abbba', 'abbbba' et seulement elles.

Задание 2

Une chaîne est donnée :

pythontxt = 'aa aba abba abbba abbbba abbbbba'

Écrivez une expression régulière qui trouvera les chaînes de type 'aba', dans lesquelles 'b' apparaît moins de 3 fois (inclus).

Задание 3

Une chaîne est donnée :

pythontxt = 'aa aba abba abbba abbbba abbbbba'

Écrivez une expression régulière qui trouvera les chaînes de type 'aba', dans lesquelles 'b' apparaît plus de 4 fois (inclus).