Групе при претраживању регуларним изразима у PHP-у
Претпоставимо да имамо неки стринг који садржи домен:
<?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';
?>
Ставите име фајла и његову екстензију у одвојене групе.