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' :
txt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)
print(res)
Résultat de l'exécution du code :
'xx ! ! xaaax'
Exemple
Dans cet exemple, le modèle de recherche est
le suivant : lettre 'x', lettre 'a'
deux fois ou plus, lettre 'x' :
txt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)
print(res)
Résultat de l'exécution du code :
'xx xax ! !'
Exemple
Dans cet exemple, le modèle de recherche est
le suivant : lettre 'x', lettre 'a'
trois fois, lettre 'x' :
txt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)
print(res)
Résultat de l'exécution du code :
'xx xax xaax !'
Exemple
Dans cet exemple, le modèle de recherche est
le suivant : lettre 'a' dix fois :
txt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)
print(res)
Résultat de l'exécution du code :
'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 :
txt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)
print(res)
Résultat de l'exécution du code :
'! ! ! !'
Exemple
Zéro avant 3 est également autorisé :
txt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)
print(res)
Résultat de l'exécution du code :
'! ! ! !'
Tâches pratiques
Une chaîne est donnée :
txt = 'aa aba abba abbba abbbba abbbbba'
Écrivez une expression régulière qui trouvera les chaînes
'abba', 'abbba', 'abbbba'
et seulement elles.
Une chaîne est donnée :
txt = '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).
Une chaîne est donnée :
txt = '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).