re.sub et match.groups()[0]
Bonjour,
une petite question assez subtile sur l'utilisation de re.sub :
Je voudrais remplacer des morceaux de chaînes dépendant du contexte (caractères autour du motif à remplacer) sans altérer ce contexte.
Un exemple (complètement bidon, juste pour illustrer) :
Je veux remplacer les caractères uniques placés entre 2 lettres par '*'.
Ma chaîne : '---asd---j7k---t$u---r&&u---'
Ce que je veux obtenir : '---a*d---j*k---t*u---r&&u---'
J'essaye en utilisant re.sub :
Code:
1 2 3 4 5 6 7 8
| import re
ex = re.compile('[a-z](.)[a-z]')
def repl ( match ):
print match.groups()[0]
return '*'
s1 = '---asd---j7k---t$u---r&&u---'
s2 = ex.sub( repl,s1 )
print s2 |
Mais j'obtiens :
Code:
1 2 3 4
| s
7
$
---*---*---*---r&&u--- |
On voit que match.groups()[0] contient bien ce qu'il faut, mais les lettres qui entourent le caractère à remplacer sont remplacées avec !
Comment dire à re.sub que je ne veux remplacer que match.groups()[0] ?
Merci d'avance !