Lommer i erstatningsteksten i Python
Når du arbejder med metoden sub, hvis
du skal lægge noget i en lomme i det regulære udtryk,
kan du indsætte indholdet af
denne lomme i erstatningsteksten ved at skrive dobbelt skråstreg \
og lommenummeret. For eksempel, \1 -
den første lomme, \2 - den anden lomme
og så videre.
Lad os se på eksempler for at forstå, hvorfor dette er nyttigt og hvordan man bruger det.
Eksempel
Lad os finde alle tal og erstatte dem med de samme tal, men i parenteser. For at gøre dette erstatter vi alle de fundne tal med dem selv, men i parenteser:
txt = '1 23 456 xax'
res = re.sub('(\d+)', '(\1)', txt)
print(res)
Resultatet gemmes i variablen som følgende:
'(1) (23) (456) xax'
Eksempel
Lad os finde alle strenge, der repræsenterer
tal omgivet af 'x'er og erstatte disse
tal med dem selv, men omgivet af '!' tegn:
txt = 'x1x x23x x456x xax'
res = re.sub('x(\d+)x', '!\1!', txt)
print(res)
Resultatet gemmes i variablen som følgende:
'!1! !23! !456! xax'
Eksempel
Lad os løse følgende opgave: givet en streng
'aaa@bbb ccc@ddd' - bogstaver, derefter
at-tegn (@), derefter bogstaver. Vi er nødt til at bytte om på
bogstaverne i delstrengen 'aaa@bbb' før
'@' og efter:
txt = 'aaa@bbb ccc@ddd'
res = re.sub('([a-z]+)@([a-z]+)', '\2@\1', txt)
print(res)
Resultatet gemmes i variablen som følgende:
'bbb@aaa ccc@ddd'
Praktiske opgaver
Givet en streng:
txt = '12 34 56 78'
Bytt om på cifrene i alle tocifrede tal.
Givet en streng med en dato:
txt = '31.12.2025'
Konverter denne dato til '2025.12.31'.