Maison >développement back-end >Tutoriel Python >Comment insérer un numéro après une correspondance de groupe en utilisant `re.sub()` en Python ?

Comment insérer un numéro après une correspondance de groupe en utilisant `re.sub()` en Python ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-03 08:43:291140parcourir

How to Insert a Number After a Group Match using `re.sub()` in Python?

Insérer un numéro après une correspondance de groupe en Python re.sub

En Python, la fonction re.sub() permet de remplacer des sous-chaînes dans une chaîne donnée. Un défi courant rencontré est de savoir comment remplacer une correspondance de groupe par un autre groupe suivi d'un numéro spécifique.

Pour illustrer, considérons la tâche consistant à remplacer « foobar » par « foo123bar ». Tenter cela en utilisant une expression simple comme re.sub(r'(foo)', r'1123', 'foobar') aboutit malheureusement à "J3bar" à la place.

La clé pour résoudre ce problème réside dans l'emploi des groupes de capture nommés, qui permettent de référencer les correspondances de groupes par noms attribués dans l'expression régulière. En utilisant la syntaxe (?P...), nous pouvons définir un groupe de capture nommé pour la sous-chaîne à remplacer.

Pour réaliser le remplacement souhaité, nous devons utiliser la syntaxe spéciale g pour faire référence au groupe de capture nommé "foo".

L'expression régulière corrigée serait :

<code class="python">re.sub(r'(?P<foo>foo)', r'\g<foo>123', 'foobar')</code>

Avec cette expression, le remplacement insère correctement "123" après la correspondance de groupe "foo ", ce qui donne le résultat attendu "foo123bar."

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn