Кармаҳо дар сатри иваз дар Python
Ҳангоми кор бо усули 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' табдил диҳед.