Lommer i erstatningsteksten i Python
Når du arbeider med metoden sub, hvis
noe må legges i en lomme i det regulære uttrykket,
kan du sette inn innholdet fra
denne lommen i erstatningsteksten ved å skrive dobbelt skråstrek \
og lommenummeret. For eksempel, \1 -
den første lommen, \2 - den andre lommen
og så videre.
La oss se på eksempler for å forstå hvorfor dette er nyttig og hvordan det brukes.
Eksempel
La oss finne alle tall og erstatte dem med de samme tallene, men inni parenteser. For å gjøre dette erstatter vi alle funnede tall med seg selv, men i parentes:
txt = '1 23 456 xax'
res = re.sub('(\d+)', '(\1)', txt)
print(res)
Resultatet som lagres i variabelen vil være følgende:
'(1) (23) (456) xax'
Eksempel
La oss finne alle strenger som representerer
tall omgitt av 'x' og erstatte disse
tallene med seg selv, men med '!' tegn
rundt:
txt = 'x1x x23x x456x xax'
res = re.sub('x(\d+)x', '!\1!', txt)
print(res)
Resultatet som lagres i variabelen vil være følgende:
'!1! !23! !456! xax'
Eksempel
La oss løse følgende oppgave: gitt en streng
'aaa@bbb ccc@ddd' - bokstaver, deretter
krøllalfa, deretter bokstaver. Vi må bytte plass på
bokstavene i delstrengen 'aaa@bbb' før
'@' og etter:
txt = 'aaa@bbb ccc@ddd'
res = re.sub('([a-z]+)@([a-z]+)', '\2@\1', txt)
print(res)
Resultatet som lagres i variabelen vil være følgende:
'bbb@aaa ccc@ddd'
Praktiske oppgaver
Gitt en streng:
txt = '12 34 56 78'
Bytt om sifrene i alle tosifrede tall.
Gitt en streng med en dato:
txt = '31.12.2025'
Konverter denne datoen til '2025.12.31'.