294 votes

groupe python re.sub: nombre après \ nombre

Comment est-ce que je peux remplacer « foobar » à « foo123bar » ?

Cela ne fonctionne pas :

Cela fonctionne :

Je pense que c’est un problème commun : numéro après \number. Quelqu'un peut me donner un point sur la façon de gérer cela ?

494voto

John Gaines Jr. Points 4127

La réponse est:

re.sub(r'(foo)', r'\g<1>123', 'foobar')

Extrait de la doc:

En plus de caractère s'échappe et références arrières comme décrit ci-dessus, \g va utiliser la sous-chaîne appariés par le groupe nommé nom, comme définies par le?P...) de la syntaxe. \g utilisations correspondantes numéro de groupe; \g<2> est donc équivalent à \2, mais n'est pas ambigu dans un remplacement comme \g<2>0. \20 pourrait être interprété comme une référence à groupe de 20, pas une référence pour le groupe 2 suivi par le caractère littéral de "0". La référence arrière \g<0> substituts de l'ensemble de la sous-chaîne en correspondance par l' RE.

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