Python регулярдык туюнтмаларындагы кырчоо кашаалар

'+', '*', '?' операторлору жакшы, бирок, алардын жардамы менен так кайталоо санын көрсөтүү мүмкүн эмес. Бул учурда сизге {} оператору жардам берет.

Ал төмөнкүдөй иштейт: {5} - беш жолу кайталоо, {2,5} – экиден бешке чейин кайталоо (экөө тең камтылган), {2,} - эки же андан көп жолу кайталоо. Мисалдарды караңыз:

Мисал

Бул мисалда издөө үлгүсү төмөнкүдөй көрүнөт: тамга 'x', тамга 'a' бир же эки жолу, тамга 'x':

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

print(res)

Кодду иштетүүнүн натыйжасы:

python'xx ! ! xaaax'

Мисал

Бул мисалда издөө үлгүсү төмөнкүдөй көрүнөт: тамга 'x', тамга 'a' эки же андан көп жолу, тамга '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' он жолу:

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 жолдон (камтып) көп кездешкен саптарды таба турган регулярдык туюнтма жазыңыз.