Џебови во низата за замена во 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'.