Ž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:
txt = '1 23 456 xax'
res = re.sub('(\d+)', '(\1)', txt)
print(res)
Kot rezultat se bo v spremenljivko zapisalo naslednje:
'(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:
txt = 'x1x x23x x456x xax'
res = re.sub('x(\d+)x', '!\1!', txt)
print(res)
Kot rezultat se bo v spremenljivko zapisalo naslednje:
'!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:
txt = 'aaa@bbb ccc@ddd'
res = re.sub('([a-z]+)@([a-z]+)', '\2@\1', txt)
print(res)
Kot rezultat se bo v spremenljivko zapisalo naslednje:
'bbb@aaa ccc@ddd'
Praktične naloge
Podan je niz:
txt = '12 34 56 78'
Zamenjajte mesti števk v vseh dvomestnih številkah.
Podan je niz z datumom:
txt = '31.12.2025'
Pretvorite ta datum v '2025.12.31'.