Python тіліндегі реттік өрнектердегі бұйра жақшалар

Операторлар '+', '*', '?' жақсы, бірақ олардың көмегімен нақты қайталану санын көрсету мүмкін емес. Бұл жағдайда сізге {} операторы көмекке келеді.

Ол келесідей жұмыс істейді: {5} - бес рет қайталанады, {2,5} – екіден беске дейін қайталанады (екеуі де қоса алғанда), {2,} - екі және одан да көп рет қайталанады. Мысалдарға назар аударыңыз:

Мысал

Бұл мысалда іздеу үлгісі келесідей көрінеді: 'x' әрпі, 'a' әрпі bir немесе eki рет, 'x' әрпі:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)

print(res)

Кодты орындау нәтижесі:

python'xx ! ! xaaax'

Мысал

Бұл мысалда іздеу үлгісі келесідей көрінеді: 'x' әрпі, 'a' әрпі eki рет және одан да көп, 'x' әрпі:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)

print(res)

Кодты орындау нәтижесі:

python'xx xax ! !'

Мысал

Бұл мысалда іздеу үлгісі келесідей көрінеді: 'x' әрпі, 'a' әрпі үш рет, 'x' әрпі:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)

print(res)

Кодты орындау нәтижесі:

python'xx xax xaax !'

Мысал

Бұл мысалда іздеу үлгісі келесідей көрінеді: 'a' әрпі on рет:

pythontxt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)

print(res)

Кодты орындау нәтижесі:

python'aaa ! aaa'

Мысал

Бұл мысалда келесі үлгі бар: 'x' әрпі, 'a' әрпі үш рет және одан аз, 'x' әрпі. Оны жүзеге асыру үшін, 3 санының алдында санды көрсетпеуге болады, тек үтір қою керек:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)

print(res)

Кодты орындау нәтижесі:

python'! ! ! !'

Мысал

3 алдындағы нөл де рұқсат етілген:

pythontxt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)

print(res)

Кодты орындау нәтижесі:

python'! ! ! !'

Практикалық есептер

Задание 1

Мына жол берілген:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

'abba', 'abbba', 'abbbba' жолдарын және оларды ғана табатын реттік өрнек жазыңыз.

Задание 2

Мына жол берілген:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

'aba' түріндегі, ішінде 'b' 3-тен аз (қоса алғанда) кездесетін жолдарды табатын реттік өрнек жазыңыз.

Задание 3

Мына жол берілген:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

'aba' түріндегі, ішінде 'b' 4-тен көп (қоса алғанда) кездесетін жолдарды табатын реттік өрнек жазыңыз.