Қавсҳои каҷ дар ифодаҳои мунтазами Python
Операторҳои '+', '*', '?'
хуб ҳастанд, аммо бо ёрии онҳо имконнопазир
аст шумораи муайяни такрорҳоро муайян кардан. Дар ин ҳолат
ба шумо оператори {} ёрӣ мерасонад.
Он ба ин тавр кор мекунад: {5}
- панҷ маротиба такрор, {2,5} – аз
ду то панҷ маротиба (ҳарду ҳамроҳ) такрор,
{2,} - ду маротиба ва бештар такрор.
Ба мисолҳо нигаред:
Мисол
Дар ин мисол қолиби ҷустуҷӯ ба ин шакл
аст: ҳарфи 'x', ҳарфи 'a'
як ё ду маротиба, ҳарфи 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)
print(res)
Натиҷаи иҷрои код:
'xx ! ! xaaax'
Мисол
Дар ин мисол қолиби ҷустуҷӯ ба ин шакл
аст: ҳарфи 'x', ҳарфи 'a'
ду маротиба ва бештар, ҳарфи 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)
print(res)
Натиҷаи иҷрои код:
'xx xax ! !'
Мисол
Дар ин мисол қолиби ҷустуҷӯ ба ин шакл
аст: ҳарфи 'x', ҳарфи 'a'
се маротиба, ҳарфи 'x':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)
print(res)
Натиҷаи иҷрои код:
'xx xax xaax !'
Мисол
Дар ин мисол қолиби ҷустуҷӯ ба ин шакл
аст: ҳарфи 'a' даҳ маротиба:
txt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)
print(res)
Натиҷаи иҷрои код:
'aaa ! aaa'
Мисол
Дар ин мисол чунин қолиб мавҷуд аст: ҳарфи
'x', ҳарфи 'a' се маротиба ва камтар,
ҳарфи 'x'. Барои он,
ки онро амалӣ созем, пеш аз рақами 3
шумораро муайян кардан ҳатмии нест,
танҳо вергул гузоред:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)
print(res)
Натиҷаи иҷрои код:
'! ! ! !'
Мисол
Сифр пеш аз 3 низ иҷозат дорад:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)
print(res)
Натиҷаи иҷрои код:
'! ! ! !'
Масъалаҳои амалӣ
Сатр дода шудааст:
txt = 'aa aba abba abbba abbbba abbbbba'
Ифодаи мунтазаме нависед, ки сатрҳои
'abba', 'abbba', 'abbbba'
ва танҳо онҳоро ёбад.
Сатр дода шудааст:
txt = 'aa aba abba abbba abbbba abbbbba'
Ифодаи мунтазаме нависед, ки сатрҳои
намуди 'aba'-ро ёбад, ки дар онҳо 'b'
камтар аз 3 маротиба (ҳамроҳ) вомехӯрад.
Сатр дода шудааст:
txt = 'aa aba abba abbba abbbba abbbbba'
Ифодаи мунтазаме нависед, ки сатрҳои
намуди 'aba'-ро ёбад, ки дар онҳо 'b'
бештар аз 4 маротиба (ҳамроҳ) вомехӯрад.