Кішэні ў радку замены ў Python

Пры працы з метадам sub, калі нешта трэба пакласці ў кішэнь у рэгулярцы, то ў радку замены можна ўставіць змесціва гэтага кішэня напісаўшы двайны слэш \ і нумар кішэня. Напрыклад, \1 - першы кішэнь, \2 - другі кішэнь і гэтак далей.

Навошта гэта трэба і як гэтым карыстацца давайце паглядзім на прыкладах.

Прыклад

Давайце знойдзем усе лікі і замест іх уставім гэтыя ж лікі, але ў круглых дужках. Для гэтага ўсе знойдзеныя лікі замянім на іх саміх ж, але ў дужках:

pythontxt = '1 23 456 xax'

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

У выніку ў зменную запишацца наступнае:

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

Прыклад

Давайце знойдзем усе радкі, якія прадстаўляюць сабой лікі з іксамі вакол і замянім гэтыя лікі на іх ж, але з '!' знакамі вакол:

pythontxt = 'x1x x23x x456x xax'

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

У выніку ў зменную запишацца наступнае:

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

Прыклад

Давайце вырашим наступную задачу: дадзены радок 'aaa@bbb ccc@ddd' - літары, потым сабака, потым літары. Трэба памяняць месцамі літары ў падрадку 'aaa@bbb' да '@' і пасля:

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

print(res)

У выніку ў зменную запишацца наступнае:

python'bbb@aaa ccc@ddd'

Практычныя задачы

Задание 1

Дадзены радок:

pythontxt = '12 34 56 78'

Памяняйце месцамі лічбы ва ўсіх двухзначных ліках.

Задание 2

Дадзены радок з датай:

pythontxt = '31.12.2025'

Пераўтварыце гэтую дату ў '2025.12.31'.