Python regular ifadelerinde ýaýly aýlaw

'+', '*', '?' operatorlary gowy, ýöne olaryň kömegi bilen takyk gaýtalanma sanyny görkezip bolmaýar. Bu ýagdaýda size {} operatory kömek eder.

Ol şeýle işleýär: {5} - bäş gezek gaýtalama, {2,5} – ikiden bäşe çenli (ikisi hem goşulmak bilen) gaýtalama, {2,} - iki ýa-da ondan köp gezek gaýtalama. Mysallara serediň:

Mysal

Bu mysalda gözleg şablon şuňa meňzeýär: harplyk 'x', 'a' harplygy bir ýa-da iki gezek, 'x' harplyk:

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

print(res)

Kody ýerine ýetirmegiň netijesi:

python'xx ! ! xaaax'

Mysal

Bu mysalda gözleg şablon şuňa meňzeýär: harplyk 'x', 'a' harplygy iki gezek we ondan köp, 'x' harplyk:

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

print(res)

Kody ýerine ýetirmegiň netijesi:

python'xx xax ! !'

Mysal

Bu mysalda gözleg şablon şuňa meňzeýär: harplyk 'x', 'a' harplygy üç gezek, 'x' harplyk:

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

print(res)

Kody ýerine ýetirmegiň netijesi:

python'xx xax xaax !'

Mysal

Bu mysalda gözleg şablon şuňa meňzeýär: 'a' harplygy on gezek:

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

print(res)

Kody ýerine ýetirmegiň netijesi:

python'aaa ! aaa'

Mysal

Bu mysalda şeýle bir şablon bar: harplyk 'x', 'a' harplygy üç gezek we ondan az, 'x' harplyk. Ony ýerine ýetirmek üçin, 3 sanyndan öň san görkezmän, ýöne diňe ýat çyzgy goýup bolýar:

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

print(res)

Kody ýerine ýetirmegiň netijesi:

python'! ! ! !'

Mysal

3 öňündäki nol hem rugsat berilýär:

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

print(res)

Kody ýerine ýetirmegiň netijesi:

python'! ! ! !'

Amaly meseleler

Задание 1

Setir berlen:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

'abba', 'abbba', 'abbbba' setirlerini we diňe olary tapýan regular ýazyň.

Задание 2

Setir berlen:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

'aba' görnüşindäki, içinde 'b' 3-den az (goşulmak bilen) gezek duşýan setirleri tapýan regular ýazyň.

Задание 3

Setir berlen:

pythontxt = 'aa aba abba abbba abbbba abbbbba'

'aba' görnüşindäki, içinde 'b' 4-den köp (goşulmak bilen) gezek duşýan setirleri tapýan regular ýazyň.