Амрҳои 'Ё' дар ифодаҳои мунтазами Python

Амри '|', ки намуди қудратмандтари 'Ё' нисбат ба амри [ ] мебошад. Ин амр ба шумо имкон медиҳад, ки ифодаи мунтазамро ба чанд қисм тақсим кунед. Дар ин ҳол, матни ҷустуҷӯ шуда метавонад ё ба як қисми ифодаи мунтазам ё ба қисми дигар мувофиқат кунад. Биёед ба мисолҳо нигарем.

Мисол

Дар ин мисол намунаи ҷустуҷӯ ин аст: се ҳарфи 'a' ё се ҳарфи 'b':

pythontxt = 'aaa bbb abb'
res = re.sub('a{3}|b{3}', '!', txt)

print(res)

Натиҷаи иҷрои код:

python'! ! abb'

Мисол

Дар ин мисол намунаи ҷустуҷӯ ин аст: се ҳарфи 'a' ё аз 1 ва бештар ҳарфҳои 'b':

pythontxt = 'aaa bbb bbbb bbbbb axx'
res = re.sub('a{3}|b+', '!', txt)

print(res)

Натиҷаи иҷрои код:

python'! ! ! ! axx'

Мисол

Дар ин мисол намунаи ҷустуҷӯ ин аст: як ё бештар ҳарф ё се рақам:

pythontxt = 'a ab abc 1 12 123'
res = re.sub('[a-z]+|\d{3}', '!', txt)

print(res)

Натиҷаи иҷрои код:

python'! ! ! 1 12 !'

Мисол

Хати амудӣ метавонад ифодаи мунтазамро на ба ду қисм, балки ба ҳар гуна шумораи қисмҳо тақсим кунад:

pythontxt = 'aaa bbb ccc ddd'
res = re.sub('a+|b+|c+', '!', txt)

print(res)

Натиҷаи иҷрои код:

python'! ! ! ddd'

Мисол

Агар хати амудӣ дар дохили қавсҳои гирд қарор дошта бошад, пас 'Ё' фақат дар дохили ин қавсҳо кор мекунад.

Барои мисол биёед сатрҳоро мувофиқи намунаи зерин пайдо кунем: дар аввал ё 'a', ё 'b' як ё бештар маротиба истода, сипас ду ҳарфи 'x' меистад:

pythontxt = 'axx bxx bbxx exx'
res = re.sub('(a|b+)xx', '!', txt)

print(res)

Натиҷаи иҷрои код:

python'! ! ! exx'

Масъалаҳои амалӣ

Задание 1

Сатр дода шудааст:

pythontxt = 'aeeea aeea aea axa axxa axxxa'

Ифодаи мунтазамеро нависед, ки сатрҳоро мувофиқи намунаи зерин пайдо кунад: дар канорҳо ҳарфҳои 'a' истодаанд, ва байни онҳо - ё ҳарфи 'e' ҳар шумора маротиба ё ҳарфи 'x' ҳар шумора маротиба.

Задание 2

Сатр дода шудааст:

pythontxt = 'aeeea aeea aea axa axxa axxxa'

Ифодаи мунтазамеро нависед, ки сатрҳоро мувофиқи намунаи зерин пайдо кунад: дар канорҳо ҳарфҳои 'a' истодаанд, ва байни онҳо - ё ҳарфи 'e' ду маротиба ё ҳарфи 'x' ҳар шумора маротиба.