Python регуляр ифодаларидаги каббир қавслар
'+', '*', '?' операторлари
яхши, аммо, улар ёрдамида такрорланишнинг
аник сонини кўрсатиб бўлмайди. Бу ҳолатда
сизга {} оператори ёрдамга келади.
У quyidagicha ишлайди: {5}
- беш марта такрорланиш, {2,5} – иккидан
бешгача такрорланиш (иккаласи ҳам ўзига олинган), {2,}
- икки ва ундан кўп марта такрорланиш. Мисолларга
назар солинг:
Мисол
Ушбу мисолда қидирув намунаси quyidagicha кўринишда:
ҳарф 'x', 'a' ҳарфи
бир ёки икки марта, 'x' ҳарфи:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)
print(res)
Кодни бажариш натижаси:
'xx ! ! xaaax'
Мисол
Ушбу мисолда қидирув намунаси quyidagicha кўринишда:
ҳарф 'x', 'a' ҳарфи
икки марта ва ундан кўп, 'x' ҳарфи:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)
print(res)
Кодни бажариш натижаси:
'xx xax ! !'
Мисол
Ушбу мисолда қидирув намунаси quyidagicha кўринишда:
ҳарф 'x', 'a' ҳарфи
уч марта, 'x' ҳарфи:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)
print(res)
Кодни бажариш натижаси:
'xx xax xaax !'
Мисол
Ушбу мисолда қидирув намунаси quyidagicha кўринишда:
'a' ҳарфи ўн марта:
txt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)
print(res)
Кодни бажариш натижаси:
'aaa ! aaa'
Мисол
Ушбу мисолда quyidagi намуна мавжуд: ҳарф
'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 мартадан кўп (ўзи ҳам олинган) учрайдиган сатрларни топадиган регуляр ифодани ёзинг.