Simvol Təkrarlama Operatorları
Elə hallar olur ki, simvolun müəyyən sayda təkrarlandığını göstərmək lazımdır.
Təkrar sayı dəqiq məlum deyilsə,
onda onu bir neçə dəfə yazmaq olar
- 'aaaa'. Bəs belə bir şey demək lazımdırsa: bir və ya daha çox dəfə təkrarla?
Bunun üçün təkrarlama operatorları (kvantifikatorlar)
var: plus + (bir və ya daha çox
dəfə), ulduz * (sıfır və ya daha çox
dəfə) və sual işarəsi ? (sıfır və ya bir dəfə).
Bu operatorlar önlərində duran simvola
təsir edir.
Gəlin bu operatorların işini nümunələr üzərində görək.
Nümunə
'x' hərfi, 'a' hərfi bir və ya daha çox
dəfə, 'x' hərfi şablonuna uyğun alt sətirləri tapaq:
txt = 'xx xax xaax xaaax xbx'
res = re.sub('xa+x', '!', txt)
print(res)
Kodun icrasının nəticəsi:
'xx ! ! ! xbx'
Nümunə
'x' hərfi, 'a' hərfi sıfır və ya daha çox
dəfə, 'x' hərfi şablonuna uyğun alt sətirləri tapaq:
txt = 'xx xax xaax xaaax xbx'
res = re.sub('xa*x', '!', txt)
print(res)
Kodun icrasının nəticəsi:
'! ! ! ! xbx'
Nümunə
'x' hərfi, 'a' hərfi sıfır və ya bir
dəfə, 'x' hərfi şablonuna uyğun alt sətirləri tapaq:
txt = 'xx xax xaax xbx'
res = re.sub('xa?x', '!', txt)
print(res)
Kodun icrasının nəticəsi:
'! ! xaax xbx'
Praktiki Tapşırıqlar
Sətir verilib:
txt = 'aa aba abba abbba abca abea'
'aba', 'abba', 'abbba'
sətirlərini tapacaq regular ifadəni yazın:
'a' hərfi, 'b' hərfi istənilən sayda, 'a' hərfi.
Sətir verilib:
txt = 'aa aba abba abbba abca abea'
'aa', 'aba', 'abba',
'abbba' sətirlərini tapacaq regular ifadəni yazın:
'a' hərfi, 'b' hərfi istənilən sayda (o cümlədən heç), 'a' hərfi.
Sətir verilib:
txt = 'aa aba abba abbba abca abea'
'aa', 'aba' sətirlərini tapacaq regular ifadəni yazın:
'a' hərfi, 'b' hərfi bir dəfə və ya heç, 'a' hərfi.
Sətir verilib:
txt = 'aa aba abba abbba abca abea'
'aa', 'aba', 'abba',
'abbba' sətirlərini tapacaq, 'abca'
və 'abea' sətirlərini tapmayacaq regular ifadəni yazın.