Zakken in vervangreeks in Python
Bij het werken met de methode sub, als
je iets in een zak in de reguliere expressie wilt stoppen,
dan kun je in de vervangreeks de inhoud van
deze zak invoegen door een dubbele backslash \
te schrijven gevolgd door het zaknummer. Bijvoorbeeld, \1 -
eerste zak, \2 - tweede zak
enzovoort.
Laten we aan de hand van voorbeelden bekijken waar dit voor nodig is en hoe je het gebruikt.
Voorbeeld
Laten we alle getallen vinden en in plaats daarvan dezezelfde getallen invoegen, maar tussen ronde haakjes. Om dit te doen vervangen we alle gevonden getallen door zichzelf, maar tussen haakjes:
txt = '1 23 456 xax'
res = re.sub('(\d+)', '(\1)', txt)
print(res)
Als resultaat wordt het volgende in de variabele opgeslagen:
'(1) (23) (456) xax'
Voorbeeld
Laten we alle strings vinden die
getallen voorstellen met 'x'-en eromheen en deze
getallen vervangen door zichzelf, maar met '!' tekens
eromheen:
txt = 'x1x x23x x456x xax'
res = re.sub('x(\d+)x', '!\1!', txt)
print(res)
Als resultaat wordt het volgende in de variabele opgeslagen:
'!1! !23! !456! xax'
Voorbeeld
Laten we de volgende taak oplossen: gegeven een string
'aaa@bbb ccc@ddd' - letters, dan
een apenstaartje, dan letters. We moeten de letters
in de substring 'aaa@bbb' vóór
'@' en erna van plaats verwisselen:
txt = 'aaa@bbb ccc@ddd'
res = re.sub('([a-z]+)@([a-z]+)', '\2@\1', txt)
print(res)
Als resultaat wordt het volgende in de variabele opgeslagen:
'bbb@aaa ccc@ddd'
Praktische taken
Gegeven een string:
txt = '12 34 56 78'
Wissel de cijfers in alle tweecijferige getallen om.
Gegeven een string met een datum:
txt = '31.12.2025'
Converteer deze datum naar '2025.12.31'.