Python регуляр ифодаларидаги каббир қавслар

'+', '*', '?' операторлари яхши, аммо, улар ёрдамида такрорланишнинг аник сонини кўрсатиб бўлмайди. Бу ҳолатда сизга {} оператори ёрдамга келади.

У quyidagicha ишлайди: {5} - беш марта такрорланиш, {2,5} – иккидан бешгача такрорланиш (иккаласи ҳам ўзига олинган), {2,} - икки ва ундан кўп марта такрорланиш. Мисолларга назар солинг:

Мисол

Ушбу мисолда қидирув намунаси quyidagicha кўринишда: ҳарф 'x', 'a' ҳарфи бир ёки икки марта, 'x' ҳарфи:

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

print(res)

Кодни бажариш натижаси:

python'xx ! ! xaaax'

Мисол

Ушбу мисолда қидирув намунаси quyidagicha кўринишда: ҳарф 'x', 'a' ҳарфи икки марта ва ундан кўп, 'x' ҳарфи:

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

print(res)

Кодни бажариш натижаси:

python'xx xax ! !'

Мисол

Ушбу мисолда қидирув намунаси quyidagicha кўринишда: ҳарф 'x', 'a' ҳарфи уч марта, 'x' ҳарфи:

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

print(res)

Кодни бажариш натижаси:

python'xx xax xaax !'

Мисол

Ушбу мисолда қидирув намунаси quyidagicha кўринишда: 'a' ҳарфи ўн марта:

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

print(res)

Кодни бажариш натижаси:

python'aaa ! aaa'

Мисол

Ушбу мисолда quyidagi намуна мавжуд: ҳарф '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 мартадан кўп (ўзи ҳам олинган) учрайдиган сатрларни топадиган регуляр ифодани ёзинг.