Python Regular Ifodalarida Figurali Qavslar

'+', '*', '?' operatorlari yaxshi, ammo ular yordamida aniq takrorlanishlar sonini ko'rsatib bo'lmaydi. Bu holda {} operatori yordamga keladi.

U quyidagicha ishlaydi: {5} - besh marta takrorlanadi, {2,5} – ikki beshgacha (har ikkisi ham qo'shilgan), {2,} - ikki yoki undan ko'p marta takrorlanadi. Misollarni ko'rib chiqing:

Misol

Ushbu misolda qidirsh shabloni quyidagicha: harf 'x', harf 'a' bir yoki ikki marta, harf 'x':

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

print(res)

Kodni bajarish natijasi:

python'xx ! ! xaaax'

Misol

Ushbu misolda qidirsh shabloni quyidagicha: harf 'x', harf 'a' ikki marta yoki undan ko'p, harf 'x':

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

print(res)

Kodni bajarish natijasi:

python'xx xax ! !'

Misol

Ushbu misolda qidirsh shabloni quyidagicha: harf 'x', harf 'a' uch marta, harf 'x':

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

print(res)

Kodni bajarish natijasi:

python'xx xax xaax !'

Misol

Ushbu misolda qidirsh shabloni quyidagicha: harf 'a' o'n marta:

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

print(res)

Kodni bajarish natijasi:

python'aaa ! aaa'

Misol

Ushbu misolda quyidagi shablon mavjud: harf 'x', harf 'a' uch marta va undan kam, harf 'x'. Buni amalga oshirish uchun, 3 raqami oldiga raqamni ko'rsatmasdan, shunchaki vergul qo'yish mumkin:

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

print(res)

Kodni bajarish natijasi:

python'! ! ! !'

Misol

3 oldidagi nol ham qabul qilinadi:

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

print(res)

Kodni bajarish natijasi:

python'! ! ! !'

Amaliy vazifalar

Задание 1

Berilgan satr:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

'abba', 'abbba', 'abbbba' satrlarini va faqat ularni topadigan regular ifodani yozing.

Задание 2

Berilgan satr:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

'aba' ko'rinishidagi satrlarni topadigan regular ifodani yozing, unda 'b' 3- martadan kam (qo'shilgan holda) uchraydi.

Задание 3

Berilgan satr:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

'aba' ko'rinishidagi satrlarni topadigan regular ifodani yozing, unda 'b' 4- martadan ko'p (qo'shilgan holda) uchraydi.