PHP-də requlyar ifadələrdə simvol dəstləri
\d və \w simvol qrupları
çox çevik deyil. Hətta bütün hərfləri, lakin rəqəmləri yox tapmaq kimi
sadə bir vəzifə belə onlar tərəfindən həll edilə bilməz. Belə vəzifələr üçün
VƏ YA əməliyyatını təmsil edən kvadrat mötərizələrdən istifadə etmək lazımdır.
Kvadrat mötərizələr içərisində göstərilən hər hansı bir simvolu əvəz edir.
Məsələn, belə: #x[abc]x# - biz deyirik ki,
kənarlarda x hərfləri, içəridə isə
- bir simvol: ya 'a', ya 'b',
ya da 'c' olmalıdır.
Kvadrat mötərizələrdən sonra təkrar operatorları
yazmaq olar. Məsələn, belə: #x[abc]+x#
- biz deyirik ki, x-lər arasında
istənilən sayda 'a', 'b'
və 'c' simvolları ola bilər - istənilən birləşmədə.
Yalnız simvolları sadalamaqla kifayətlənməyib,
iki simvol arasında defis yazmaqla simvol qrupları da yarada bilərsiniz.
Məsələn, belə: #[a-d]#
- biz 'a'-dan
'd'-dək olan bütün simvolları alırıq.
Gəlin nümunələrə baxaq.
Nümunə
Bu nümunədə axtarış şablonu belə görünür:
x-lər arasında 'a'-dan
'z'-dək istənilən hərf:
<?php
$str = 'xax xbx xcx x@x';
$res = preg_replace('#x[a-z]x#', '!', $str);
?>
Nəticədə dəyişənə aşağıdakı yazılacaq:
'! ! ! x@x'
Nümunə
Bu nümunədə axtarış şablonu belə görünür:
x-lər arasında 'a'-dan
'k'-dək istənilən hərf:
<?php
$str = 'xax xbx xmx x@x';
$res = preg_replace('#x[a-k]x#', '!', $str);
?>
Nəticədə dəyişənə aşağıdakı yazılacaq:
'! ! xmx x@x'
Nümunə
Bu nümunədə axtarış şablonu belə görünür:
x-lər arasında 'A'-dan
'Z'-dək istənilən hərf:
<?php
$str = 'xax xBx xcx x@x';
$res = preg_replace('#x[A-Z]x#', '!', $str);
?>
Nəticədə dəyişənə aşağıdakı yazılacaq:
'xax ! xcx x@x'
Nümunə
Bu nümunədə axtarış şablonu belə görünür:
x-lər arasında 0-dan 9-a qədər istənilən rəqəm:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[0-9]x#', '!', $str);
?>
Nəticədə dəyişənə aşağıdakı yazılacaq:
'xax ! ! ! x@x'
Nümunə
Bu nümunədə axtarış şablonu belə görünür:
x-lər arasında 3-dən 7-yə qədər istənilən rəqəm:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[3-7]x#', '!', $str);
?>
Nəticədə dəyişənə aşağıdakı yazılacaq:
'xax x1x ! ! x@x'
Nümunə
Bu nümunədə axtarış şablonu belə görünür:
x-lər arasında 'a'-dan
'z'-dək istənilən hərf və ya 1-dən 9-a qədər rəqəm:
<?php
$str = 'xax x1x x3x x5x x@x';
$res = preg_replace('#x[a-z1-9]x#', '!', $str);
?>
Nəticədə dəyişənə aşağıdakı yazılacaq:
'! ! ! ! x@x'
Nümunə
Bu nümunədə axtarış şablonu belə görünür:
x-lər arasında 'a'-dan
'z'-dək istənilən hərf və ya 'A'-dan
'Z'-dək hərf:
<?php
$str = 'xax xBx xcx x5x x@x';
$res = preg_replace('#x[a-zA-Z]x#', '!', $str);
?>
Nəticədə dəyişənə aşağıdakı yazılacaq:
'! ! ! x5x x@x'
Nümunə
Bu nümunədə axtarış şablonu belə görünür:
x-lər arasında 'a'-dan
'z'-dək istənilən hərf və ya 1, 2 rəqəmləri:
<?php
$str = 'xax xbx x1x x2x x3x';
$res = preg_replace('#x[a-z12]x#', '!', $str);
?>
Nəticədə dəyişənə aşağıdakı yazılacaq:
'! ! ! ! x3x'
Nümunə
Bu nümunədə axtarış şablonu belə görünür:
x-lər arasında 'a'-dan 'z'-dək hərflər
1 və daha çox sayda:
<?php
$str = 'xx xabesx xaadx x123x xa3x';
$res = preg_replace('#x[a-z]+x#', '!', $str);
?>
Nəticədə dəyişənə aşağıdakı yazılacaq:
'xx ! ! ! x123x xa3x'
Nümunə
Gəlin elə edək ki, hərflərin sayı sıfır da ola bilsin:
<?php
$str = 'xx xabesx xaadx x123x xa3x';
$res = preg_replace('#x[a-z]*x#', '!', $str);
?>
Nəticədə dəyişənə aşağıdakı yazılacaq:
'! ! ! x123x xa3x'
Praktiki tapşırıqlar
Bir sətir verilib:
<?php
$str = 'aba aea aca aza axa';
?>
Aşağıdakı şablona uyğun gələn requlyar ifadəni yazın:
kənarlarda 'a' hərfləri dayanır,
onların arasında isə - 'b', 'e'
ya da 'x' hərfi.
Bir sətir verilib:
<?php
$str = 'a1a a3a a7a a9a aba';
?>
Aşağıdakı şablona uyğun gələn requlyar ifadəni yazın:
kənarlarda 'a' hərfləri dayanır,
onların arasında isə - 3-dən 6-ya qədər rəqəm.
Bir sətir verilib:
<?php
$str = 'aba aea afa aha aga';
?>
Aşağıdakı şablona uyğun gələn requlyar ifadəni yazın:
kənarlarda 'a' hərfləri dayanır,
onların arasında isə - a-dan g-yə qədər hərf.
Bir sətir verilib:
<?php
$str = 'aba aea afa aha aga';
?>
Aşağıdakı şablona uyğun gələn requlyar ifadəni yazın:
kənarlarda 'a' hərfləri dayanır,
onların arasında isə - a-dan f-ə qədər və j-dən z-yə qədər hərf.
Bir sətir verilib:
<?php
$str = 'aAa aea aEa aJa a3a';
?>
Aşağıdakı şablona uyğun gələn requlyar ifadəni yazın:
kənarlarda 'a' hərfləri dayanır,
onların arasında isə - a-dan f-ə qədər və A-dan D-yə qədər hərf.
Bir sətir verilib:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Aşağıdakı şablona uyğun gələn requlyar ifadəni yazın:
kənarlarda 'a' hərfləri dayanır,
onların arasında isə - kiçik latın hərfləri,
qalanları toxunmadan.
Bir sətir verilib:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Aşağıdakı şablona uyğun gələn requlyar ifadəni yazın:
kənarlarda 'a' hərfləri dayanır,
onların arasında isə - kiçik və böyük latın
hərfləri, qalanları toxunmadan.
Bir sətir verilib:
<?php
$str = 'aAXa aeffa aGha aza ax23a a3sSa';
?>
Aşağıdakı şablona uyğun gələn requlyar ifadəni yazın:
kənarlarda 'a' hərfləri dayanır,
onların arasında isə - kiçik latın hərfləri
və rəqəmlər, qalanları toxunmadan.