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:

pythontxt = '1 23 456 xax'

res = re.sub('(\d+)', '(\1)', txt)
print(res)

Výsledkom zapísaným do premennej bude nasledovné:

python'(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:

pythontxt = 'x1x x23x x456x xax'

res = re.sub('x(\d+)x', '!\1!', txt)
print(res)

Výsledkom zapísaným do premennej bude nasledovné:

python'!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:

pythontxt = '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é:

python'bbb@aaa ccc@ddd'

Praktické úlohy

Задание 1

Daný je reťazec:

pythontxt = '12 34 56 78'

Vymeňte miesta čísliciam vo všetkých dvojciferných číslach.

Задание 2

Daný je reťazec s dátumom:

pythontxt = '31.12.2025'

Preveďte tento dátum na formát '2025.12.31'.