RegEx-də Simvol Təkrarlama Operatorları
Elə hallar olur ki, biz göstərmək istəyirik ki,
simvol müəyyən sayda təkrarlanır. Əgər dəqiq
təkrarlanma sayını biliriksə, onda sadəcə onu
bir neçə dəfə yaza bilərik - #aaaa#. Bəs
biz belə bir şey demək istəsək: bir və ya daha
çox dəfə təkrarla?
Bunun üçün (kvantifikatorlar) təkrarlama
operatorları mövcuddur: 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 özlərindən əvvəl gələn
simvola təsir edir.
Gəlin bu operatorların işini nümunələr üzərində nəzərdən keçirək.
Nümunə
Şablona uyğun olan bütün alt sətirləri tapaq: hərf
'x', 'a' hərfi bir və ya daha çox
dəfə, 'x' hərfi:
<?php
$str = 'xx xax xaax xaaax xbx';
$res = preg_replace('#xa+x#', '!', $str);
?>
Nəticədə dəyişənə aşağıdakı yazılacaq:
'xx ! ! ! xbx'
Nümunə
Şablona uyğun olan bütün alt sətirləri tapaq: hərf
'x', 'a' hərfi sıfır və ya daha çox
dəfə, 'x' hərfi:
<?php
$str = 'xx xax xaax xaaax xbx';
$res = preg_replace('#xa*x#', '!', $str);
?>
Nəticədə dəyişənə aşağıdakı yazılacaq:
'! ! ! ! xbx'
Nümunə
Şablona uyğun olan bütün alt sətirləri tapaq: hərf
'x', 'a' hərfi sıfır və ya bir
dəfə, 'x' hərfi:
<?php
$str = 'xx xax xaax xbx';
$res = preg_replace('#xa?x#', '!', $str);
?>
Nəticədə dəyişənə aşağıdakı yazılacaq:
'! ! xaax xbx'
Praktiki Tapşırıqlar
Bir sətir verilib:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Bu şablona uyğun sətirləri tapacaq regex yazın:
'a' hərfi, 'b' hərfi bir və ya
daha çox dəfə, 'a' hərfi.
Bir sətir verilib:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Bu şablona uyğun sətirləri tapacaq regex yazın:
'a' hərfi, 'b' hərfi sıfır və ya
daha çox dəfə, 'a' hərfi.
Bir sətir verilib:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Bu şablona uyğun sətirləri tapacaq regex yazın:
'a' hərfi, 'b' hərfi bir dəfə
ya da heç, 'a' hərfi.
Bir sətir verilib:
<?php
$str = 'aa aba abba abbba abca abea';
?>
'abca' və 'abea'-i əhatə etmədən,
'aa', 'aba', 'abba',
'abbba' sətirlərini tapacaq regex yazın.