Taskud regulaaravaldiste otsingus PHP-s

Oletame, et meil on mingi string, mis sisaldab domeeni:

php<?php
  $str = 'eee site.ru bbb';
?>

Leiame selle domeeni ja jagame selle osadeks: eraldame domeeni nime selle tsoonist. Selleks kasutame regulaaravaldiste taskusid.

Taskud on massiivi elemendid, kuhu saab panna regulaaravaldisega leitud osad. Meie puhul saame esimesse taskusse panna domeeni nime ja teise - selle tsooni.

Teeme seda. Alustuseks kirjutame regulaaravaldise, mis leiab stringist domeeni:

php<?php
  $reg = '#[a-z0-9_-]+\.[a-z]{2,}#';
?>

Märgime nüüd oma regulaaravaldises, millised osad peaksid millisesse taskusse minema. See tehakse ümarsulgude abil. Eraldame nende abil regulaaravaldise osa, mis otsib domeeni nime, ja osa, mis otsib domeeni tsooni:

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

Nüüd funktsioonis preg_match kolmanda parameetrina määrame muutuja (mis tahes nimi):

php<?php
  preg_match($reg, $str, $res);
?>

Määratud muutujasse satub massiiv leitud taskutega. Samal ajal on massiivi nullindas elemendis leitud string, esimeses elemendis - esimene task, teises elemendis - teine task ja nii edasi:

php<?php
  preg_match($reg, $str, $res);
  var_dump($res); // väljastab ['site.ru', 'site', 'ru']
?>
Задание 1

Antud string kuupäevaga:

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

Pange aasta, kuu ja päev erinevatesse taskutesse.

Задание 2

Antud string failinimega:

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

Pange failinimi ja selle laiendus erinevatesse taskutesse.