Kabatas aizvietošanas virknē Python
Strādājot ar metodi sub, ja
kaut kas ir jāievieto kabatā regulārajā izteiksmē,
tad aizvietošanas virknē var ievietot šīs
kabatas saturu, ierakstot dubulto slīpsvītru \
un kabatas numuru. Piemēram, \1 -
pirmā kabata, \2 - otrā kabata
un tā tālāk.
Kāpēc tas ir nepieciešams un kā to lietot aplūkosim ar piemēriem.
Piemērs
Atradīsim visus skaitļus un to vietā ievietosim šos pašus skaitļus, bet apaļās iekavās. Lai to izdarītu, visus atrastos skaitļus aizstāsim ar pašiem sevi, bet iekavās:
txt = '1 23 456 xax'
res = re.sub('(\d+)', '(\1)', txt)
print(res)
Rezultātā mainīgajā tiks ierakstīts sekojošais:
'(1) (23) (456) xax'
Piemērs
Atradīsim visas virknes, kas
pārstāv skaitļus ar 'x' ap to un aizstāsim šos
skaitļus ar pašiem sevi, bet ar '!' zīmēm
ap to:
txt = 'x1x x23x x456x xax'
res = re.sub('x(\d+)x', '!\1!', txt)
print(res)
Rezultātā mainīgajā tiks ierakstīts sekojošais:
'!1! !23! !456! xax'
Piemērs
Atrisināsim sekojošu uzdevumu: dota virkne
'aaa@bbb ccc@ddd' - burti, tad
atslēga @, tad burti. Jāsamaina vietām
buri apakšvirknē 'aaa@bbb' pirms
'@' un pēc:
txt = 'aaa@bbb ccc@ddd'
res = re.sub('([a-z]+)@([a-z]+)', '\2@\1', txt)
print(res)
Rezultātā mainīgajā tiks ierakstīts sekojošais:
'bbb@aaa ccc@ddd'
Praktiskie uzdevumi
Dota virkne:
txt = '12 34 56 78'
Samainiet vietām ciparus visos divciparu skaitļos.
Dota virkne ar datumu:
txt = '31.12.2025'
Pārveidojiet šo datumu par '2025.12.31'.