detecter un entier avec expression régulière

Le
bubu
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 ?

au pire je peux faire :
d
dd
ddd

mais bon
merci d'avance
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MCI, Shadok Gouroudoudou
Le #604656
Bonjour !


Un 'tit exemple, ça irait ?

Voilà :

import string,re
st="""azer1234 az
e 123 ZZZ13A"""

compile_obj = re.compile("d+", re.MULTILINE)

resul = compile_obj.findall(st)
for i in resul:
print i







--
@-salutations

Michel Claveau
tool69
Le #604452
Salut,

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
Le #604451
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
bubu
Le #604218
ah merci à vous deux, j'avais pas trouvé d+
Publicité
Poster une réponse
Anonyme