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:
txt = '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:
'(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:
txt = '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:
'!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:
txt = '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:
'bbb@aaa ccc@ddd'
Gyakorlati feladatok
Adott egy sztring:
txt = '12 34 56 78'
Cserélje fel a számjegyeket az összes kétjegyű számban.
Adott egy dátumot tartalmazó sztring:
txt = '31.12.2025'
Alakítsa át ezt a dátumot '2025.12.31' formátumra.