Kišenės pakeitimo eilutėje Python
Dirbant su metodu sub, jei
ką nors reikia įdėti į kišenę reguliariojoje išraiškoje,
tada pakeitimo eilutėje galite įterpti šios
kišenės turinį parašydami dvigubą pasvirąjį brūkšnį \
ir kišenės numerį. Pavyzdžiui, \1 -
pirmoji kišenė, \2 - antroji kišenė
ir taip toliau.
Kam to reikia ir kaip tuo naudotis pažiūrėkime pavyzdžiais.
Pavyzdys
Raskime visus skaičius ir vietoj jų įdėkime tuos pačius skaičius, bet skliausteliuose. Tam visus rastus skaičius pakeisime jais pačiais, bet skliausteliuose:
txt = '1 23 456 xax'
res = re.sub('(\d+)', '(\1)', txt)
print(res)
Rezultate į kintamąjį bus įrašyta taip:
'(1) (23) (456) xax'
Pavyzdys
Raskime visas eilutes, kurios
yra skaičiai su 'x' aplink ir pakeiskime šiuos
skaičius jais pačiais, bet su '!' ženklais
aplink:
txt = 'x1x x23x x456x xax'
res = re.sub('x(\d+)x', '!\1!', txt)
print(res)
Rezultate į kintamąjį bus įrašyta taip:
'!1! !23! !456! xax'
Pavyzdys
Išspręskime tokį uždavinį: duota eilutė
'aaa@bbb ccc@ddd' - raidės, tada
'@' ženklas, tada raidės. Reikia sukeisti vietomis
raides požymyje 'aaa@bbb' prieš
'@' ir po:
txt = 'aaa@bbb ccc@ddd'
res = re.sub('([a-z]+)@([a-z]+)', '\2@\1', txt)
print(res)
Rezultate į kintamąjį bus įrašyta taip:
'bbb@aaa ccc@ddd'
Praktiniai uždaviniai
Duota eilutė:
txt = '12 34 56 78'
Sukeiskite vietomis skaitmenis visuose dviženkliuose skaičiuose.
Duota eilutė su data:
txt = '31.12.2025'
Paverskite šią datą į '2025.12.31'.