Žepi v nadomestnem nizu v Pythonu

Pri delu z metodo sub, če je treba kaj spraviti v žep v regularnem izrazu, lahko v nadomestni niz vstavite vsebino tega žepa tako, da napišete dvojno poševnico \ in številko žepa. Na primer, \1 - prvi žep, \2 - drugi žep in tako naprej.

Zakaj je to potrebno in kako se tega posluževati, poglejmo si s primeri.

Primer

Poiščimo vse številke in namesto njih vstavimo te iste številke, v okroglih oklepajih. Za to bomo vse najdene številke zamenjali z njimi samimi, vendar v oklepajih:

pythontxt = '1 23 456 xax'

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

Kot rezultat se bo v spremenljivko zapisalo naslednje:

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

Primer

Poiščimo vse nize, ki predstavljajo številke z 'x' okoli njih in zamenjajmo te številke z njimi samimi, vendar z '!' znaki okoli:

pythontxt = 'x1x x23x x456x xax'

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

Kot rezultat se bo v spremenljivko zapisalo naslednje:

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

Primer

Rešimo naslednjo nalogo: podan je niz 'aaa@bbb ccc@ddd' - črke, nato '@', nato črke. Zamenjati je treba mesta črkam v podnizu 'aaa@bbb' pred '@' in po njem:

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

print(res)

Kot rezultat se bo v spremenljivko zapisalo naslednje:

python'bbb@aaa ccc@ddd'

Praktične naloge

Задание 1

Podan je niz:

pythontxt = '12 34 56 78'

Zamenjajte mesti števk v vseh dvomestnih številkah.

Задание 2

Podan je niz z datumom:

pythontxt = '31.12.2025'

Pretvorite ta datum v '2025.12.31'.