Maison > développement back-end > Tutoriel Python > Comment remplacer correctement les correspondances par des groupes numérotés dans re.sub de Python ?

Comment remplacer correctement les correspondances par des groupes numérotés dans re.sub de Python ?

Patricia Arquette
Libérer: 2024-11-03 17:45:03
original
1001 Les gens l'ont consulté

How to Properly Replace Matches with Numbered Groups in Python's re.sub?

Groupe Python RE.Sub : Numérotation après numéro

Lors de l'utilisation d'expressions régulières en Python, la méthode re.sub peut être utilisée pour remplacer correspond à une chaîne de remplacement. Cependant, la syntaxe peut être délicate lorsque vous travaillez avec des groupes numérotés.

Une tentative mal interprétée :

Au départ, vous pourriez essayer :

<code class="python">re.sub(r'(foo)', r'23', 'foobar')</code>
Copier après la connexion

On s'attend à ce que le résultat soit « foo123bar », mais à la place, il renvoie « J3bar », en remplaçant « foo » par « J3 » pour des raisons qui pourraient ne pas être immédiatement claires.

La syntaxe correcte :

Pour remplacer avec précision 'foo' par 'foo123', utilisez la syntaxe suivante :

<code class="python">re.sub(r'(foo)', r'\g<1>123', 'foobar')</code>
Copier après la connexion

Voici une explication détaillée :

  • L'expression régulière ( foo) capture la sous-chaîne 'foo'.
  • La chaîne de remplacement g<1>123 fait référence à la sous-chaîne capturée et y ajoute "123".
  • g<1> est une référence de groupe numérotée, où '<1>' représente le premier groupe capturé.

Extrait de la documentation :

Selon la documentation, la syntaxe de g ou g est utilisé pour :

En plus des échappements de caractères et des références arrière... g utilisera la sous-chaîne correspondant au groupe nommé name, tel que défini par la syntaxe (?P...). g utilise le numéro de groupe correspondant.

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal