Remplacer toutes les occurrences qui correspondent à l'expression régulière
J'ai une expression régulière qui recherche une chaîne de caractères qui contient '.00.'
ou '.11.'
comme suit:
.*\.(00|11)\..*
Ce que je voudrais faire est de remplacer toutes les occurrences qui correspondent au modèle avec 'X00X'
ou 'X11X'
. Par exemple, la chaîne '.00..0..11.'
entraînerait 'X00X.0.X11X'
.
J'étais à la recherche dans le Python re.sous méthode et ne suis pas sûr de la façon de le faire efficacement. Le retour de l'objet match seulement correspond à la première occurrence et donc ne fonctionne pas bien. Tous les conseils? Devrais-je être à l'aide d'une chaîne de remplacer pour cette tâche? Merci.
OriginalL'auteur tots_o_tater | 2016-07-02
Vous devez vous connecter pour publier un commentaire.
re.sub()
(docs pour Python 2 et Python 3) ne remplacer tous les matches qu'il trouve, mais votre utilisation de.*
peut avoir causé la regex match de trop bien (même les autres occurences de.00.
etc.). Il suffit de faire:Noter que les modèles ne peuvent pas se chevaucher:
En Python,
match
recherches pour un match au début d'une chaîne, il ne nécessite pas une chaîne complète de match.re.sub
trouve tous les non-cumul des séquences correspondant au modèle et les remplace.OriginalL'auteur Tim Pietzcker
Vous pouvez l'essayer aussi bien,
OriginalL'auteur Siva Prasad Koka