Taskud Pythoni asendusstringis
Töötades meetodiga sub, kui
miski tuleb panna taskusse regulaaravaldises,
siis asendusstringis saab selle tasku sisu
sisestada kirjutades kaldkriipsu \
ja tasku numbri. Näiteks \1 -
esimene task, \2 - teine task
ja nii edasi.
Milleks seda vaja on ja kuidas seda kasutada vaatame näidete varal.
Näide
Leiame kõik numbrid ja nende asemele paneme need samad numbrid, kuid ümarsulgudes. Selleks asendame kõik leitud numbrid nendega endaga, kuid sulgudes:
txt = '1 23 456 xax'
res = re.sub('(\d+)', '(\1)', txt)
print(res)
Tulemusena kirjutatakse muutujasse järgmine:
'(1) (23) (456) xax'
Näide
Leiame kõik stringid, mis esindavad
nummerdust ümbritsetud x-idega ja asendame need
numbrid endaga, kuid ümbritsetud '!' märkidega:
txt = 'x1x x23x x456x xax'
res = re.sub('x(\d+)x', '!\1!', txt)
print(res)
Tulemusena kirjutatakse muutujasse järgmine:
'!1! !23! !456! xax'
Näide
Lahendame järgmise ülesande: on antud string
'aaa@bbb ccc@ddd' - tähed, siis
@ märk, siis tähed. On vaja vahetada kohad
tähtedel alamstringis 'aaa@bbb' enne
'@' märki ja pärast:
txt = 'aaa@bbb ccc@ddd'
res = re.sub('([a-z]+)@([a-z]+)', '\2@\1', txt)
print(res)
Tulemusena kirjutatakse muutujasse järgmine:
'bbb@aaa ccc@ddd'
Praktilised ülesanded
Antud string:
txt = '12 34 56 78'
Vahetage kohad numbritel kõigis kahekohalistes numbrites.
Antud string kuupäevaga:
txt = '31.12.2025'
Teisendage see kuupäev kujule '2025.12.31'.