Python-da Regulyar Ifadələrdə Qıvrım Mötərizələr

'+', '*', '?' operatorları yaxşıdır, lakin onların köməyi ilə konkret təkrar sayını göstərmək mümkün deyil. Bu halda sizə {} operatoru kömək edəcək.

O, aşağıdakı kimi işləyir: {5} - beş təkrar, {2,5} – ikidən beşədək təkrar (hər ikisi daxil olmaqla), {2,} - iki və daha çox dəfə təkrar olunur. Nümunələrə baxın:

Nümunə

Bu nümunədə axtarış şablonu belə görünür: hərf 'x', hərf 'a' bir və ya iki dəfə, hərf 'x':

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

print(res)

Kodun icrasının nəticəsi:

python'xx ! ! xaaax'

Nümunə

Bu nümunədə axtarış şablonu belə görünür: hərf 'x', hərf 'a' iki və daha çox dəfə, hərf 'x':

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

print(res)

Kodun icrasının nəticəsi:

python'xx xax ! !'

Nümunə

Bu nümunədə axtarış şablonu belə görünür: hərf 'x', hərf 'a' üç dəfə, hərf 'x':

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

print(res)

Kodun icrasının nəticəsi:

python'xx xax xaax !'

Nümunə

Bu nümunədə axtarış şablonu belə görünür: hərf 'a' on dəfə:

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

print(res)

Kodun icrasının nəticəsi:

python'aaa ! aaa'

Nümunə

Bu nümunədə belə bir şablon var: hərf 'x', hərf 'a' üç və daha az dəfə, hərf 'x'. Onu həyata keçirmək üçün, 3 rəqəmindən əvvəl rəqəm göstərmək əvəzinə, sadəcə vergül qoya bilərsiniz:

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

print(res)

Kodun icrasının nəticəsi:

python'! ! ! !'

Nümunə

3-dən əvvəl sıfır da mümkündür:

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

print(res)

Kodun icrasının nəticəsi:

python'! ! ! !'

Praktiki Tapşırıqlar

Задание 1

Sətir verilmişdir:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

'abba', 'abbba', 'abbbba' sətirlərini və yalnız onları tapan regulyar ifadə yazın.

Задание 2

Sətir verilmişdir:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

'aba' tipli, içindəki 'b'-nin 3-dən az (daxil olmaqla) olduğu sətirləri tapan regulyar ifadə yazın.

Задание 3

Sətir verilmişdir:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

'aba' tipli, içindəki 'b'-nin 4-dən çox (daxil olmaqla) olduğu sətirləri tapan regulyar ifadə yazın.