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:
txt = '1 23 456 xax'
res = re.sub('(\d+)', '(\1)', txt)
print(res)
Kao rezultat u promenljivu će biti upisano sledeće:
'(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:
txt = 'x1x x23x x456x xax'
res = re.sub('x(\d+)x', '!\1!', txt)
print(res)
Kao rezultat u promenljivu će biti upisano sledeće:
'!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:
txt = '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:
'bbb@aaa ccc@ddd'
Praktični zadaci
Dat je string:
txt = '12 34 56 78'
Zamenite mesta ciframa u svim dvocifrenim brojevima.
Dat je string sa datumom:
txt = '31.12.2025'
Transformišite ovaj datum u '2025.12.31'.