Zsebek a csere sztringben Pythonban

A sub metódus használatakor, ha valamit egy zsebbe szeretnénk tenni a reguláris kifejezésben, a csere sztringben a zseb tartalmát egy dupla perjel \ és a zseb sorszáma alkalmazásával illeszthetjük be. Például, \1 - az első zseb, \2 - a második zseb és így tovább.

Hogy ez mire jó és hogyan használjuk, nézzük meg példákon keresztül.

Példa

Keressük meg az összes számot, és helyettesítsük őket ugyanazokkal a számokkal, de zárójelben. Ehhez az összes talált számot cseréljük ki önmagukra, de zárójelben:

pythontxt = '1 23 456 xax'

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

Ennek eredményeképpen a változóba a következő íródik:

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

Példa

Keressük meg az összes olyan sztringet, amely számokat ábrázol körülöttük lévő x-ekkel, és cseréljük ki ezeket a számokat önmagukra, de '!' jelekkel körülvéve:

pythontxt = 'x1x x23x x456x xax'

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

Ennek eredményeképpen a változóba a következő íródik:

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

Példa

Oldjuk meg a következő feladatot: adott egy sztring 'aaa@bbb ccc@ddd' - betűk, majd kukac, majd betűk. Cseréljük fel az 'aaa@bbb' részsztring betűit a '@' előtt és mögött:

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

print(res)

Ennek eredményeképpen a változóba a következő íródik:

python'bbb@aaa ccc@ddd'

Gyakorlati feladatok

Задание 1

Adott egy sztring:

pythontxt = '12 34 56 78'

Cserélje fel a számjegyeket az összes kétjegyű számban.

Задание 2

Adott egy dátumot tartalmazó sztring:

pythontxt = '31.12.2025'

Alakítsa át ezt a dátumot '2025.12.31' formátumra.