Python-da Regulyar Ifadələrdə 'və ya' Əmri
'|' əmri,
[ ] əmrindən daha güclü bir
'və ya' variantını təmsil edir.
Bu əmr
regulyarı bir neçə hissəyə bölməyə imkan verir.
Bu zaman axtarılan
ya regulyarın bir hissəsinə, ya da
digərinə uyğun ola bilər. Gəlin nümunələrlə baxaq.
Nümunə
Bu nümunədə axtarış şablonu belədir:
üç hərf 'a' və ya üç hərf
'b':
txt = 'aaa bbb abb'
res = re.sub('a{3}|b{3}', '!', txt)
print(res)
Kodun icrasının nəticəsi:
'! ! abb'
Nümunə
Bu nümunədə axtarış şablonu belədir:
üç hərf 'a' və ya 1 və
daha çox hərf 'b':
txt = 'aaa bbb bbbb bbbbb axx'
res = re.sub('a{3}|b+', '!', txt)
print(res)
Kodun icrasının nəticəsi:
'! ! ! ! axx'
Nümunə
Bu nümunədə axtarış şablonu belədir: bir və ya daha çox hərf və ya üç rəqəm:
txt = 'a ab abc 1 12 123'
res = re.sub('[a-z]+|\d{3}', '!', txt)
print(res)
Kodun icrasının nəticəsi:
'! ! ! 1 12 !'
Nümunə
Şaquli xətt regulyarı iki hissəyə deyil, istənilən sayda hissəyə bölə bilər:
txt = 'aaa bbb ccc ddd'
res = re.sub('a+|b+|c+', '!', txt)
print(res)
Kodun icrasının nəticəsi:
'! ! ! ddd'
Nümunə
Əgər şaquli xətt dairəvi mötərizələrin
içindədirsə, onda 'və ya' yalnız
bu mötərizələrin daxilində işləyir.
Nümunə üçün gəlin aşağıdakı şablona uyğun sətirləri tapaq:
əvvəlində ya
'a', ya da 'b' bir və ya daha çox dəfə,
sonra isə iki hərf 'x':
txt = 'axx bxx bbxx exx'
res = re.sub('(a|b+)xx', '!', txt)
print(res)
Kodun icrasının nəticəsi:
'! ! ! exx'
Praktiki Tapşırıqlar
Mətn verilmişdir:
txt = 'aeeea aeea aea axa axxa axxxa'
Aşağıdakı şablona uyğun sətirləri tapacaq regulyar yazın:
kənarlarda 'a' hərfləri var,
onların arasında isə - ya 'e' hərfi istənilən sayda və ya 'x' hərfi istənilən sayda.
Mətn verilmişdir:
txt = 'aeeea aeea aea axa axxa axxxa'
Aşağıdakı şablona uyğun sətirləri tapacaq regulyar yazın:
kənarlarda 'a' hərfləri var,
onların arasında isə - ya 'e' hərfi iki dəfə və ya 'x' hərfi istənilən sayda.