Гурӯҳбандии қавсҳо дар regular expression-ҳои Python
Дар мисолҳои гузашта операторҳои такрорӣ танҳо ба як аломат, ки пеш аз онҳо истода буд, таъсир мекарданд. Чи кор кардан лозим аст, агар ба онҳо лозим аст, ки ба якчанд аломатҳо таъсир расонанд?
Барои ин қавсҳои гурӯҳбандикунанда
'(' ва мавҷуданд. Онҳо ин тавр кор мекунанд:
агар чизе дар қавсҳои гурӯҳбандикунанда истода бошад
ва баъд аз он дар ҳоли ҳозир ')'')' оператори
такрорӣ истода бошад - он ба ҳама чизе, ки
дар дохили қавсҳо истодааст, таъсир мерасонад.
Дар мисоли оянда намунаи ҷустуҷӯ ин тавр ба назар мерасад:
ҳарф 'x', сипас сатр
'ab' як ё зиёда маротиба, баъд аз он ҳарф
'x':
txt = 'xabx xababx xaabbx'
res = re.sub('x(ab)+x', '!', txt)
print(res)
Натиҷаи иҷрои код:
'! ! xaabbx'
Сатр дода шудааст:
txt = 'ab abab abab abababab abea'
Regular expression нависед, ки сатрҳоро
мувофиқи намуна пайдо кунад: сатр 'ab' такрор мешавад
1 ё зиёда маротиба.