Кармани у струци за замену у Пајтону
При раду са методом sub, ако
нешто треба ставити у карман у регуларном изразу,
онда у струци за замену можете убацити садржај
тог кармана тако што ћете написати двоструку косу црту \
и број кармана. На пример, \1 -
први карман, \2 - други карман
и тако даље.
Зашто је то потребно и како се то користи хајде да погледамо на примерима.
Пример
Хајде да нађемо све бројеве и уместо њих убацимо те исте бројеве, али у заградама. Зато ћемо све пронађене бројеве заменити њихма самима, али у заградама:
txt = '1 23 456 xax'
res = re.sub('(\d+)', '(\1)', txt)
print(res)
Као резултат у променљиву ће се уписати следеће:
'(1) (23) (456) xax'
Пример
Хајде да нађемо све струке које
представљају бројеве са иксима око себе и заменимо те
бројеве њима самима, али са '!' знаковима
око себе:
txt = 'x1x x23x x456x xax'
res = re.sub('x(\d+)x', '!\1!', txt)
print(res)
Као резултат у променљиву ће се уписати следеће:
'!1! !23! !456! xax'
Пример
Хајде да решимо следећи задатак: дата је струка
'aaa@bbb ccc@ddd' - слова, затим
знак мајмун, затим слова. Потребно је заменити места
словима у подструци 'aaa@bbb' пре
'@' и после:
txt = 'aaa@bbb ccc@ddd'
res = re.sub('([a-z]+)@([a-z]+)', '\2@\1', txt)
print(res)
Као резултат у променљиву ће се уписати следеће:
'bbb@aaa ccc@ddd'
Практични задаци
Дата је струка:
txt = '12 34 56 78'
Замените места цифрама у свим двоцифреним бројевима.
Дата је струка са датумом:
txt = '31.12.2025'
Преобразујте овај датум у '2025.12.31'.