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 :

pythontxt = '1 23 456 xax'

res = re.sub('(\d+)', '(\1)', txt)
print(res)

En conséquence, la variable contiendra la chaîne suivante :

python'(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 :

pythontxt = 'x1x x23x x456x xax'

res = re.sub('x(\d+)x', '!\1!', txt)
print(res)

En conséquence, la variable contiendra la chaîne suivante :

python'!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 :

pythontxt = '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 :

python'bbb@aaa ccc@ddd'

Tâches pratiques

Задание 1

Soit la chaîne :

pythontxt = '12 34 56 78'

Échangez les chiffres dans tous les nombres à deux chiffres.

Задание 2

Soit la chaîne contenant une date :

pythontxt = '31.12.2025'

Convertissez cette date en '2025.12.31'.