Zsebek reguláris kifejezések használatával PHP-ben
Tegyük fel, hogy van egy karakterláncunk, amely tartalmaz egy domainnevet:
<?php
$str = 'eee site.ru bbb';
?>
Keressük meg ezt a domainnevet, és osszuk részekre: válasszuk el a domain nevét a zónájától. Ehhez a reguláris kifejezések speciális zsebeit fogjuk használni.
A zsebek a tömb olyan elemei, amelyekbe a reguláris kifejezéssel megtalált részek helyezhetők. Esetünkben az első zsebbe tehetjük a domain nevét, a másodikba pedig a zónáját.
Tegyük ezt meg. Először írjunk egy reguláris kifejezést, ami megtalálja a domainnevet a karakterláncban:
<?php
$reg = '#[a-z0-9_-]+\.[a-z]{2,}#';
?>
Most jelöljük ki a reguláris kifejezésünkben, hogy mely részek melyik zsebbe kerüljenek. Ezt kerek zárójelekkel tehetjük meg. Jelöljük ki velük azt a részt, amely a domain nevét keresi, és azt a részt, amely a domain zónát keresi:
<?php
$reg = '#([a-z0-9_-]+)\.([a-z]{2,})#';
?>
Most a preg_match függvényben
harmadik paraméterként adjunk meg egy változót (bármilyen névvel):
<?php
preg_match($reg, $str, $res);
?>
A megadott változóba a megtalált zsebeket tartalmazó tömb kerül. Ugyanakkor a tömb nulladik elemében a megtalált karakterlánc lesz, az első elemében - az első zseb, a második elemében - a második zseb, és így tovább:
<?php
preg_match($reg, $str, $res);
var_dump($res); // kiírja: ['site.ru', 'site', 'ru']
?>
Adott egy dátumot tartalmazó karakterlánc:
<?php
$str = '2025-12-31';
?>
Helyezze az évet, a hónapot és a napot külön zsebekbe.
Adott egy fájlnevet tartalmazó karakterlánc:
<?php
$str = 'index.html';
?>
Helyezze a fájl nevét és a kiterjesztését külön zsebekbe.