PHP-də requlyar ifadələrdə 'və ya' əmri
Bu dərsdə biz | əmrini təhlil edəcəyik,
bu əmr [] əmrindən daha güclü bir
VƏ YA variantını təmsil edir. Bu əmr
requlyar ifadəni bir neçə hissəyə bölməyə
imkan verir. Bununla da axtarılan ya requlyar
ifadənin bir hissəsinə, ya da digərinə uyğun
ola bilər. Gəlin nümunələr üzərində baxaq.
Nümunə
Bu nümunədə axtarış şablonu belədir: üç
hərf 'a' və ya üç hərf 'b':
<?php
$str = 'aaa bbb abb';
$res = preg_replace('#a{3}|b{3}#', '!', $str);
?>
Nəticədə dəyişənə aşağıdakı yazılacaq:
'! ! abb'
Nümunə
Bu nümunədə axtarış şablonu belədir: üç
hərf 'a' və ya 1 və daha çox
hərf 'b':
<?php
$str = 'aaa bbb bbbb bbbbb axx';
$res = preg_replace('#a{3}|b+#', '!', $str);
?>
Nəticədə dəyişənə aşağıdakı yazılacaq:
'! ! ! ! axx'
Nümunə
Bu nümunədə axtarış şablonu belədir: bir və ya daha çox hərf və ya üç rəqəm:
<?php
$str = 'a ab abc 1 12 123';
$res = preg_replace('#[a-z]+|\d{3}#', '!', $str);
?>
Nəticədə dəyişənə aşağıdakı yazılacaq:
'! ! ! 1 12 !'
Nümunə
Şaquli xətt requlyar ifadəni iki hissəyə deyil, istənilən sayda hissəyə bölə bilər:
<?php
$str = 'aaa bbb ccc ddd';
$res = preg_replace('#a+|b+|c+#', '!', $str);
?>
Nəticədə dəyişənə aşağıdakı yazılacaq:
'! ! ! ddd'
Nümunə
Əgər şaquli xətt dairəvi mötərizələr içindədirsə,
onda 'və ya' yalnız həmin mötərizələr
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ə dayanır, sonra isə iki hərf 'x':
<?php
$str = 'axx bxx bbxx exx';
$res = preg_replace('#(a|b+)xx#', '!', $str);
?>
Nəticədə dəyişənə aşağıdakı yazılacaq:
'! ! ! exx'
Praktiki tapşırıqlar
Bir sətir verilib:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Aşağıdakı şablona uyğun sətirləri tapan
requlyar ifadəni yazın: kənarlarında
'a' hərfləri dayanır, onların
arasında isə - ya 'e' hərfi istənilən
sayda və ya 'x' hərfi istənilən sayda.
Bir sətir verilib:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Aşağıdakı şablona uyğun sətirləri tapan
requlyar ifadəni yazın: kənarlarında
'a' hərfləri dayanır, onların
arasında isə - ya 'e' hərfi iki dəfə
ya da 'x' hərfi istənilən sayda.