Džepovi pri pretrazi preko regularnih izraza u PHP

Neka imamo neki string koji sadrži domen:

php<?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<?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<?php
  $reg = '#([a-z0-9_-]+)\.([a-z]{2,})#';
?>

Sada u funkciji preg_match kao treći parametar navedimo promenljivu (ime bilo koje):

php<?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<?php
  preg_match($reg, $str, $res);
  var_dump($res); // ispisaće ['site.ru', 'site', 'ru']
?>
Задание 1

Dat je string sa datumom:

php<?php
  $str = '2025-12-31';
?>

Smestite godinu, mesec i dan u zasebne džepove.

Задание 2

Dat je string sa imenom fajla:

php<?php
  $str = 'index.html';
?>

Smestite ime fajla i njegovo proširenje u zasebne džepove.