Džepovi u stringu zamene u Pythonu

Pri radu sa metodom sub, ako nešto treba staviti u džep u regularnom izrazu, u string zamene možete umetnuti sadržaj tog džep napisavši dvostruku kosu crtu \ i broj džepa. Na primer, \1 - prvi džep, \2 - drugi džep i tako dalje.

Zašto je ovo potrebno i kako se time koristiti pogledajmo na primerima.

Primer

Pronađimo sve brojeve i umesto njih umetnimo te iste brojeve, ali u običnim zagradama. Za to sve pronađene brojeve zamenimo njima samima, ali u zagradama:

pythontxt = '1 23 456 xax'

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

Kao rezultat u promenljivu će biti upisano sledeće:

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

Primer

Pronađimo sve stringove koji predstavljaju brojeve sa iksovima oko njih i zamenimo te brojeve njima samima, ali sa '!' znakovima oko njih:

pythontxt = 'x1x x23x x456x xax'

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

Kao rezultat u promenljivu će biti upisano sledeće:

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

Primer

Rešimo sledeći zadatak: dat je string 'aaa@bbb ccc@ddd' - slova, pa '@', pa slova. Potrebno je zameniti mesta slovima u podstringu 'aaa@bbb' pre '@' i posle:

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

print(res)

Kao rezultat u promenljivu će biti upisano sledeće:

python'bbb@aaa ccc@ddd'

Praktični zadaci

Задание 1

Dat je string:

pythontxt = '12 34 56 78'

Zamenite mesta ciframa u svim dvocifrenim brojevima.

Задание 2

Dat je string sa datumom:

pythontxt = '31.12.2025'

Transformišite ovaj datum u '2025.12.31'.