Poches dans la chaîne de remplacement en Python
Lors de l'utilisation de la méthode sub, si
vous avez besoin de capturer quelque chose dans une poche avec l'expression régulière,
vous pouvez insérer le contenu de
cette poche dans la chaîne de remplacement en écrivant un double backslash \
suivi du numéro de la poche. Par exemple, \1 -
la première poche, \2 - la deuxième poche
et ainsi de suite.
Voyons à quoi cela sert et comment l'utiliser à l'aide d'exemples.
Exemple
Trouvons tous les nombres et remplaçons-les par ces mêmes nombres, mais entre parenthèses. Pour cela, remplaçons tous les nombres trouvés par eux-mêmes, mais entre parenthèses :
txt = '1 23 456 xax'
res = re.sub('(\d+)', '(\1)', txt)
print(res)
En conséquence, la variable contiendra la chaîne suivante :
'(1) (23) (456) xax'
Exemple
Trouvons toutes les chaînes représentant
des nombres entourés de 'x' et remplaçons ces
nombres par eux-mêmes, mais avec des signes
'!' autour :
txt = 'x1x x23x x456x xax'
res = re.sub('x(\d+)x', '!\1!', txt)
print(res)
En conséquence, la variable contiendra la chaîne suivante :
'!1! !23! !456! xax'
Exemple
Résolvons le problème suivant : on a une chaîne
'aaa@bbb ccc@ddd' - des lettres, puis
un arobase, puis des lettres. Nous devons échanger les
lettres dans la sous-chaîne 'aaa@bbb' avant
'@' et après :
txt = 'aaa@bbb ccc@ddd'
res = re.sub('([a-z]+)@([a-z]+)', '\2@\1', txt)
print(res)
En conséquence, la variable contiendra la chaîne suivante :
'bbb@aaa ccc@ddd'
Tâches pratiques
Soit la chaîne :
txt = '12 34 56 78'
Échangez les chiffres dans tous les nombres à deux chiffres.
Soit la chaîne contenant une date :
txt = '31.12.2025'
Convertissez cette date en '2025.12.31'.