44 votes

RegEx avec plusieurs groupes?

Je deviens confus en renvoyant plusieurs groupes en Python. Mon RegEx est le voici :

Et ma ficelle est

Je retourne un objet correspondant, puis je veux regarder les groupes, mais tout cela montre le dernier nombre (258):

Pourquoi ne renvoie-t-il pas des groupes de `` etc.?

36voto

Ben Blank Points 21786

Votre regex ne contient qu’une seule paire de parenthèses (un groupe de capture), de sorte que vous n’obtenez qu’un seul groupe dans votre correspondance. Si vous utilisez un opérateur de répétition sur un groupe de capture ( ou ), le groupe est « écrasé » chaque fois que le groupe est répété, ce qui signifie que seule la dernière correspondance est capturée.

Dans votre exemple ici, vous feriez probablement mieux d’utiliser `` , en combinaison avec un regex:

6voto

pokstad Points 1669

Une autre approche serait d’utiliser le regex dont vous disposez pour valider vos données, puis d’utiliser un regex plus spécifique qui cible chaque élément que vous souhaitez extraire à l’aide d’un itérateur de correspondance.

6voto

kurumi Points 10096

Parfois, c’est plus facile sans regex.

4voto

Rakesh kumar Points 381

Si vous recherchez une sortie telle que 0,1,2,3,4 etc. La réponse est très simple, voir le code ci-dessous.

print re.findall('\d',s)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X