Кішэні ў радку замены ў Python
Пры працы з метадам sub, калі
нешта трэба пакласці ў кішэнь у рэгулярцы,
то ў радку замены можна ўставіць змесціва
гэтага кішэня напісаўшы двайны слэш \
і нумар кішэня. Напрыклад, \1 -
першы кішэнь, \2 - другі кішэнь
і гэтак далей.
Навошта гэта трэба і як гэтым карыстацца давайце паглядзім на прыкладах.
Прыклад
Давайце знойдзем усе лікі і замест іх уставім гэтыя ж лікі, але ў круглых дужках. Для гэтага ўсе знойдзеныя лікі замянім на іх саміх ж, але ў дужках:
txt = '1 23 456 xax'
res = re.sub('(\d+)', '(\1)', txt)
print(res)
У выніку ў зменную запишацца наступнае:
'(1) (23) (456) xax'
Прыклад
Давайце знойдзем усе радкі, якія прадстаўляюць
сабой лікі з іксамі вакол і замянім гэтыя
лікі на іх ж, але з '!' знакамі
вакол:
txt = 'x1x x23x x456x xax'
res = re.sub('x(\d+)x', '!\1!', txt)
print(res)
У выніку ў зменную запишацца наступнае:
'!1! !23! !456! xax'
Прыклад
Давайце вырашим наступную задачу: дадзены радок
'aaa@bbb ccc@ddd' - літары, потым
сабака, потым літары. Трэба памяняць месцамі
літары ў падрадку 'aaa@bbb' да
'@' і пасля:
txt = 'aaa@bbb ccc@ddd'
res = re.sub('([a-z]+)@([a-z]+)', '\2@\1', txt)
print(res)
У выніку ў зменную запишацца наступнае:
'bbb@aaa ccc@ddd'
Практычныя задачы
Дадзены радок:
txt = '12 34 56 78'
Памяняйце месцамі лічбы ва ўсіх двухзначных ліках.
Дадзены радок з датай:
txt = '31.12.2025'
Пераўтварыце гэтую дату ў '2025.12.31'.