Пусть у нас есть некоторая строка, содержащая домен:
<?php
$str = 'eee site.ru bbb';
?>
Давайте найдем этот домен и разделим его на части: отделим имя домена от его зоны. Для этого мы используем специальные карманы регулярных выражений.
Карманы представляют собой элементы массива, в которые можно положить части найденного регуляркой. В нашем случае в первый карман мы можем положить имя домена, а во второй - его зону.
Давайте сделаем это. Для начала напишем регулярку, которая находит домен в строке:
<?php
$reg = '#[a-z0-9_-]+\.[a-z]{2,}#';
?>
Давайте теперь в нашей регулярке обозначим, какие части в какой карман должны попадать. Это делается с помощью круглых скобок. Давайте выделим с их помощью часть регулярки, которая ищет имя домена, и ту часть, которая ищет доменную зону:
<?php
$reg = '#([a-z0-9_-]+)\.([a-z]{2,})#';
?>
Теперь в функции preg_match
в качестве
третьего параметра укажем переменную (имя любое):
<?php
preg_match($reg, $str, $res);
?>
В указанную переменную попадет массив с найденными карманами. При этом в нулевом элементе массива будет лежать найденная строка, в первом элементе - первый карман, во втором элементе - второй карман и так далее:
<?php
preg_match($reg, $str, $res);
var_dump($res); // выведет ['site.ru', 'site', 'ru']
?>
Дана строка с датой:
<?php
$str = '2025-12-31';
?>
Положите год, месяц и день в отдельные карманы.
Дана строка с именем файла:
<?php
$str = 'index.html';
?>
Положите имя файла и его расширение в отдельные карманы.