Džepovi pri pretrazi preko regularnih izraza u PHP
Neka imamo neki string koji sadrži domen:
<?php
$str = 'eee site.ru bbb';
?>
Hajde da pronađemo ovaj domen i podelimo ga na delove: odvojimo ime domena od njegove zone. Za ovo ćemo koristiti specijalne džepove regularnih izraza.
Džepovi predstavljaju elemente niza, u koje se mogu smestiti delovi pronađeni regularnim izrazom. U našem slučaju u prvi džep možemo da smestimo ime domena, a u drugi - njegovu zonu.
Hajde da to uradimo. Za početak napišimo regularni izraz, koji pronalazi domen u stringu:
<?php
$reg = '#[a-z0-9_-]+\.[a-z]{2,}#';
?>
Hajde sada u našem regularnom izrazu označimo, koji delovi u koji džep treba da upadnu. Ovo se radi pomoću oblih zagrada. Hajde da njima izdvojimo deo regularnog izraza koji traži ime domena, i onaj deo koji traži domensku zonu:
<?php
$reg = '#([a-z0-9_-]+)\.([a-z]{2,})#';
?>
Sada u funkciji preg_match kao
treći parametar navedimo promenljivu (ime bilo koje):
<?php
preg_match($reg, $str, $res);
?>
U navedenu promenljivu će upasti niz sa pronađenim džepovima. Pristom u nultom elementu niza će ležati pronađeni string, u prvom elementu - prvi džep, u drugom elementu - drugi džep i tako dalje:
<?php
preg_match($reg, $str, $res);
var_dump($res); // ispisaće ['site.ru', 'site', 'ru']
?>
Dat je string sa datumom:
<?php
$str = '2025-12-31';
?>
Smestite godinu, mesec i dan u zasebne džepove.
Dat je string sa imenom fajla:
<?php
$str = 'index.html';
?>
Smestite ime fajla i njegovo proširenje u zasebne džepove.