bonjour,
je voudrais detecter un entier dans une chaine de caractère mais sa
longueur peut varier, je me demandais si il y avait quelque-chose de
prévu pour ça ?
Pas besoin de string (on est encore qu'au printemps), du reste finditer me semble plus élégant...mais bon, question de gôut !
import re st="""azer1234 az e 123 ZZZ13A"""
matched = re.compile("d+", re.MULTILINE)
for i in matched.finditer(st): print i.group()
MCI, Shadok Gouroudoudou
Bonjour !
Il y a une différence : - findall retourne une liste de contenu (de chaînes) - finditer retourne un itérateur sur les objets "trouvés" (matched)
S'il s'agit juste de trouver des chaînes, findall est meilleur. Pour trouver les positions des objets cherchés, finditer est préférable.
Quand au string, on a l'habitude de dire "en avril, ne te découvre pas d'un fil". Or, un string n'est qu'un gros fil. Mais, bon, suivant ce que l'on veut faire, on peut l'oter...
-- @-salutations
Michel Claveau
Bonjour !
Il y a une différence :
- findall retourne une liste de contenu (de chaînes)
- finditer retourne un itérateur sur les objets "trouvés" (matched)
S'il s'agit juste de trouver des chaînes, findall est meilleur.
Pour trouver les positions des objets cherchés, finditer est
préférable.
Quand au string, on a l'habitude de dire "en avril, ne te découvre pas
d'un fil". Or, un string n'est qu'un gros fil.
Mais, bon, suivant ce que l'on veut faire, on peut l'oter...
Il y a une différence : - findall retourne une liste de contenu (de chaînes) - finditer retourne un itérateur sur les objets "trouvés" (matched)
S'il s'agit juste de trouver des chaînes, findall est meilleur. Pour trouver les positions des objets cherchés, finditer est préférable.
Quand au string, on a l'habitude de dire "en avril, ne te découvre pas d'un fil". Or, un string n'est qu'un gros fil. Mais, bon, suivant ce que l'on veut faire, on peut l'oter...