Kieszenie w ciągu zastępowania w Pythonie

Podczas pracy z metodą sub, jeśli coś trzeba umieścić w kieszeni w wyrażeniu regularnym, to w ciągu zastępowania można wstawić zawartość tej kieszeni pisząc podwójny ukośnik \ i numer kieszeni. Na przykład, \1 - pierwsza kieszeń, \2 - druga kieszeń i tak dalej.

Po co to jest potrzebne i jak z tego korzystać przyjrzyjmy się na przykładach.

Przykład

Znajdźmy wszystkie liczby i zamiast nich wstawmy te same liczby, ale w nawiasach okrągłych. Aby to zrobić, wszystkie znalezione liczby zamieńmy na nie same, ale w nawiasach:

pythontxt = '1 23 456 xax'

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

W rezultacie do zmiennej zapisze się następujące:

python'(1) (23) (456) xax'

Przykład

Znajdźmy wszystkie ciągi znaków, reprezentujące sobie liczby z iksami dookoła i zamieńmy te liczby na nie same, ale z '!' znakami dookoła:

pythontxt = 'x1x x23x x456x xax'

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

W rezultacie do zmiennej zapisze się następujące:

python'!1! !23! !456! xax'

Przykład

Rozwiążmy następujące zadanie: dany jest ciąg znaków 'aaa@bbb ccc@ddd' - litery, potem małpa, potem litery. Należy zamienić miejscami litery w podciągu 'aaa@bbb' przed '@' i po:

pythontxt = 'aaa@bbb ccc@ddd'
res = re.sub('([a-z]+)@([a-z]+)', '\2@\1', txt)

print(res)

W rezultacie do zmiennej zapisze się następujące:

python'bbb@aaa ccc@ddd'

Zadania praktyczne

Задание 1

Dany jest ciąg znaków:

pythontxt = '12 34 56 78'

Zamień miejscami cyfry we wszystkich dwucyfrowych liczbach.

Задание 2

Dany jest ciąg znaków z datą:

pythontxt = '31.12.2025'

Przekształć tę datę na '2025.12.31'.