Využitie skupín v reťazci nahradenia v Pythone
Pri práci s metódou sub, ak
potrebujeme použiť obsah zachytávacej skupiny (skupiny) v regulárnom výraze,
môžeme ho vložiť do reťazca nahradenia pomocou spätného lomítka \
a čísla skupiny. Napríklad, \1 -
prvá skupina, \2 - druhá skupina
a tak ďalej.
Na čo sa to používa a ako s tým pracovať sa pozrieme na príkladoch.
Príklad
Nájdime všetky čísla a namiesto nich vložme tieto isté čísla, ale v okrúhlych zátvorkách. Preto všetky nájdené čísla nahraďme ich samými, ale v zátvorkách:
txt = '1 23 456 xax'
res = re.sub('(\d+)', '(\1)', txt)
print(res)
Výsledkom zapísaným do premennej bude nasledovné:
'(1) (23) (456) xax'
Príklad
Nájdime všetky reťazce, ktoré predstavujú
čísla s písmenami 'x' okolo a nahraďme tieto
čísla nimi samými, ale s '!' znamienkami
okolo:
txt = 'x1x x23x x456x xax'
res = re.sub('x(\d+)x', '!\1!', txt)
print(res)
Výsledkom zapísaným do premennej bude nasledovné:
'!1! !23! !456! xax'
Príklad
Poďme vyriešiť nasledujúcu úlohu: daný je reťazec
'aaa@bbb ccc@ddd' - písmená, potom
zavináč, potom písmená. Je potrebné vymeniť miesta
písmenám v podreťazci 'aaa@bbb' pred
'@' a po ňom:
txt = 'aaa@bbb ccc@ddd'
res = re.sub('([a-z]+)@([a-z]+)', '\2@\1', txt)
print(res)
Výsledkom zapísaným do premennej bude nasledovné:
'bbb@aaa ccc@ddd'
Praktické úlohy
Daný je reťazec:
txt = '12 34 56 78'
Vymeňte miesta čísliciam vo všetkých dvojciferných číslach.
Daný je reťazec s dátumom:
txt = '31.12.2025'
Preveďte tento dátum na formát '2025.12.31'.