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':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)
print(res)
Kodun icrasının nəticəsi:
'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':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)
print(res)
Kodun icrasının nəticəsi:
'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':
txt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)
print(res)
Kodun icrasının nəticəsi:
'xx xax xaax !'
Nümunə
Bu nümunədə axtarış şablonu belə görünür:
hərf 'a' on dəfə:
txt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)
print(res)
Kodun icrasının nəticəsi:
'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:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)
print(res)
Kodun icrasının nəticəsi:
'! ! ! !'
Nümunə
3-dən əvvəl sıfır da mümkündür:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)
print(res)
Kodun icrasının nəticəsi:
'! ! ! !'
Praktiki Tapşırıqlar
Sətir verilmişdir:
txt = 'aa aba abba abbba abbbba abbbbba'
'abba', 'abbba', 'abbbba'
sətirlərini və yalnız onları tapan regulyar ifadə yazın.
Sətir verilmişdir:
txt = '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.
Sətir verilmişdir:
txt = '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.