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