La méthode finditer dans les expressions régulières Python
La méthode finditer est destinée à
obtenir un itérateur de toutes les correspondances
avec l'expression régulière dans la chaîne. Dans le premier paramètre
de la méthode, nous indiquons l'expression régulière que nous allons
chercher, dans le second paramètre - la chaîne
dans laquelle nous cherchons. La méthode vérifie toutes les correspondances,
en les cherchant de gauche à droite. La méthode retourne
un itérateur d'objets de correspondance. La syntaxe
de la méthode finditer est la suivante :
re.finditer(quoi chercher, où chercher)
Trouvons toutes les sous-chaînes avec des chiffres dans notre chaîne :
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
Résultat de l'exécution du code :
<callable_iterator object at 0x000002AA891300A0>
Maintenant, déclarons une variable res,
dont la valeur sera l'objet que nous avons obtenu
dans l'exemple précédent. Ensuite, parcourons-la
avec une boucle :
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Après l'exécution du code, deux objets de correspondance (match) seront affichés :
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Ces objets contiennent des informations sur toutes les correspondances avec l'expression régulière sous forme de tuple. On peut en afficher les correspondances par index :
for el in res:
print(el[0])
Résultat de l'exécution du code :
'123'
'456'
Soit la chaîne :
txt = '12 aaa 34 bbb 56 ccc'
Affichez tous les nombres qu'elle contient à l'aide d'une boucle.