Grupuri de captură în șirul de înlocuire în Python

Când lucrați cu metoda sub, dacă trebuie să capturați ceva în expresia regulată, în șirul de înlocuire puteți insera conținutul acelui grup de captură scriind backslash dublu \ și numărul grupului. De exemplu, \1 - primul grup de captură, \2 - al doilea grup de captură și așa mai departe.

Pentru ce este util și cum să folosiți acest lucru să vedem pe exemple.

Exemplu

Să găsim toate numerele și în locul lor să inserăm aceleași numere, dar între paranteze rotunde. Pentru asta toate numerele găsite le vom înlocui cu ele însele, dar între paranteze:

pythontxt = '1 23 456 xax'

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

Ca rezultat în variabilă se va scrie următorul text:

python'(1) (23) (456) xax'

Exemplu

Să găsim toate șirurile care reprezintă numere înconjurate de 'x' și să înlocuim aceste numere cu ele însele, dar înconjurate de semnele '!':

pythontxt = 'x1x x23x x456x xax'

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

Ca rezultat în variabilă se va scrie următorul text:

python'!1! !23! !456! xax'

Exemplu

Să rezolvăm următoarea problemă: este dat șirul 'aaa@bbb ccc@ddd' - litere, apoi simbolul @, apoi litere. Trebuie să schimbăm locurile literelor în subșirul 'aaa@bbb' dinainte de '@' și după:

pythontxt = 'aaa@bbb ccc@ddd'
res = re.sub('([a-z]+)@([a-z]+)', '\2@\1', txt)

print(res)

Ca rezultat în variabilă se va scrie următorul text:

python'bbb@aaa ccc@ddd'

Probleme practice

Задание 1

Este dat șirul:

pythontxt = '12 34 56 78'

Schimbați locurile cifrelor în toate numerele din două cifre.

Задание 2

Este dat șirul cu data:

pythontxt = '31.12.2025'

Transformați această dată în '2025.12.31'.