Je dois trouver, traiter et supprimer (un par un) des sous-chaînes qui correspondent à une expression régulière assez longue:match python regex et remplacez
# p is a compiled regex
# s is a string
while 1:
m = p.match(s)
if m is None:
break
process(m.group(0)) #do something with the matched pattern
s = re.sub(m.group(0), '', s) #remove it from string s
Le code ci-dessus n'est pas bon pour 2 raisons:
Cela ne fonctionne pas si m.group (0) contient des caractères spéciaux regex (comme *, +, etc.).
Il me semble que je duplique le travail: d'abord je recherche la chaîne pour l'expression régulière, et puis je dois aller chercher à nouveau pour l'enlever.
Quelle est une bonne façon de faire cela?
Merci, a oublié que .. – max
Ah et je compris ce qu'il faut faire si je veux remplacer une chaîne qui peut contenir des symboles regex .. re.escape (s) prend soin de cela. – max
désolé mais quel est p? – CodyBugstein