Regular ifadələr vasitəsilə axtarışda qəliblər PHP-də
Tutaq ki, bizdə domen ehtiva edən müəyyən bir sətir var:
<?php
$str = 'eee site.ru bbb';
?>
Gəlin bu domeni tapaq və onu hissələrə ayıraq: domen adını onun zonasından ayıraq. Bunun üçün biz müntəzəm ifadələrin xüsusi qəliblərindən istifadə edəcəyik.
Qəliblər, tapılan hissələri yerləşdirmək üçün istifadə edilən massiv elementləridir. Bizim vəziyyətimizdə birinci qəlibə domen adını, ikinci qəlibə isə onun zonasını yerləşdirə bilərik.
Gəlin bunu edək. Əvvəlcə sətirdə domeni tapan bir regular yazaq:
<?php
$reg = '#[a-z0-9_-]+\.[a-z]{2,}#';
?>
İndi gəlin regularımızda hansı hissələrin hansı qəlibə düşməli olduğunu göstərək. Bu, dairəvi mötərizələr vasitəsilə edilir. Gəlin onlardan istifadə edərək domen adını axtaran regular hissəsini və domen zonasını axtaran hissəni ayıraq:
<?php
$reg = '#([a-z0-9_-]+)\.([a-z]{2,})#';
?>
İndi preg_match funksiyasında üçüncü
parametr kimi bir dəyişən göstərək (istənilən ad):
<?php
preg_match($reg, $str, $res);
?>
Göstərilən dəyişənə tapılan qəliblərlə massiv düşəcək. Eyni zamanda, massivin sıfır elementində tapılan sətir, birinci elementində birinci qəlib, ikinci elementində ikinci qəlib və s. yerləşəcək:
<?php
preg_match($reg, $str, $res);
var_dump($res); // çıxardacaq ['site.ru', 'site', 'ru']
?>
Tarix olan bir sətir verilib:
<?php
$str = '2025-12-31';
?>
İli, ayı və günü ayrı-ayrı qəliblərə yerləşdirin.
Fayl adı olan bir sətir verilib:
<?php
$str = 'index.html';
?>
Faylın adını və onun genişlənməsini ayrı-ayrı qəliblərə yerləşdirin.