Méthode finditer du module re
La méthode finditer du module re
renvoie un itérateur de toutes les correspondances avec l'expression régulière
dans une chaîne. Dans le premier paramètre de la méthode, on spécifie
l'expression régulière. Dans le deuxième paramètre, on définit
la chaîne dans laquelle on recherche l'expression régulière. Dans le troisième
paramètre optionnel, on peut spécifier les drapeaux.
La méthode vérifie toutes les correspondances, en les cherchant
de gauche à droite.
Syntaxe
import re
re.finditer(expression_régulière, chaîne, [drapeaux])
Exemple
Trouvons toutes les sous-chaînes avec des chiffres dans notre chaîne :
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
print(res)
Résultat de l'exécution du code :
<callable_iterator object at 0x000002AA891300A0>
Exemple
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, nous obtenons deux objets Match object :
<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. Nous pouvons en extraire les correspondances par index :
for el in res:
print(el[0])
Résultat de l'exécution du code :
'123'
'456'
Exemple
Pour plus de clarté, utilisons des groupes de capture lors de la recherche de correspondances. Et lors du parcours des objets de la boucle, affichons la première correspondance (elle sera considérée comme le groupe zéro), ainsi que ses éléments, à leur tour répartis dans des groupes de capture :
txt = 'aaaa 123 bbbb 456'
res = re.finditer('(\d)(\d)', txt)
for el in res:
print(el[0], el[1], el[2])
Après l'exécution du code, nous obtenons le groupe zéro, c'est-à-dire toute la sous-chaîne, ainsi que le premier et le deuxième caractère de cette sous-chaîne :
'12' '1' '2'
'45' '4' '5'
Voir aussi
-
la méthode
findalldu modulere,
qui renvoie une liste de toutes les correspondances dans une chaîne -
la méthode
searchdu modulere,
qui cherche la première correspondance avec l'expression régulière dans une chaîne -
la méthode
matchdu modulere,
qui cherche une correspondance avec l'expression régulière au début de la chaîne -
la méthode
fullmatchdu modulere,
qui cherche toutes les correspondances avec l'expression régulière dans une chaîne -
l'objet
Match objectdu modulere,
qui contient des informations sur les correspondances avec l'expression régulière -
la méthode
splitdu modulere,
qui divise une chaîne en une liste selon le séparateur spécifié