Амрҳои 'Ё' дар ифодаҳои мунтазами Python
Амри '|', ки намуди қудратмандтари
'Ё' нисбат ба амри [ ] мебошад.
Ин амр ба шумо имкон медиҳад, ки ифодаи
мунтазамро ба чанд қисм тақсим кунед.
Дар ин ҳол, матни ҷустуҷӯ шуда метавонад
ё ба як қисми ифодаи мунтазам ё ба қисми
дигар мувофиқат кунад. Биёед ба мисолҳо
нигарем.
Мисол
Дар ин мисол намунаи ҷустуҷӯ ин аст:
се ҳарфи 'a' ё се ҳарфи
'b':
txt = 'aaa bbb abb'
res = re.sub('a{3}|b{3}', '!', txt)
print(res)
Натиҷаи иҷрои код:
'! ! abb'
Мисол
Дар ин мисол намунаи ҷустуҷӯ ин аст:
се ҳарфи 'a' ё аз 1 ва
бештар ҳарфҳои 'b':
txt = 'aaa bbb bbbb bbbbb axx'
res = re.sub('a{3}|b+', '!', txt)
print(res)
Натиҷаи иҷрои код:
'! ! ! ! axx'
Мисол
Дар ин мисол намунаи ҷустуҷӯ ин аст: як ё бештар ҳарф ё се рақам:
txt = 'a ab abc 1 12 123'
res = re.sub('[a-z]+|\d{3}', '!', txt)
print(res)
Натиҷаи иҷрои код:
'! ! ! 1 12 !'
Мисол
Хати амудӣ метавонад ифодаи мунтазамро на ба ду қисм, балки ба ҳар гуна шумораи қисмҳо тақсим кунад:
txt = 'aaa bbb ccc ddd'
res = re.sub('a+|b+|c+', '!', txt)
print(res)
Натиҷаи иҷрои код:
'! ! ! ddd'
Мисол
Агар хати амудӣ дар дохили қавсҳои гирд
қарор дошта бошад, пас 'Ё' фақат
дар дохили ин қавсҳо кор мекунад.
Барои мисол биёед сатрҳоро мувофиқи
намунаи зерин пайдо кунем: дар аввал
ё 'a', ё 'b' як ё бештар
маротиба истода, сипас ду ҳарфи 'x'
меистад:
txt = 'axx bxx bbxx exx'
res = re.sub('(a|b+)xx', '!', txt)
print(res)
Натиҷаи иҷрои код:
'! ! ! exx'
Масъалаҳои амалӣ
Сатр дода шудааст:
txt = 'aeeea aeea aea axa axxa axxxa'
Ифодаи мунтазамеро нависед, ки сатрҳоро
мувофиқи намунаи зерин пайдо кунад:
дар канорҳо ҳарфҳои 'a' истодаанд,
ва байни онҳо - ё ҳарфи 'e' ҳар
шумора маротиба ё ҳарфи 'x' ҳар
шумора маротиба.
Сатр дода шудааст:
txt = 'aeeea aeea aea axa axxa axxxa'
Ифодаи мунтазамеро нависед, ки сатрҳоро
мувофиқи намунаи зерин пайдо кунад:
дар канорҳо ҳарфҳои 'a' истодаанд,
ва байни онҳо - ё ҳарфи 'e' ду маротиба
ё ҳарфи 'x' ҳар шумора маротиба.