Taskud regulaaravaldiste otsingus PHP-s
Oletame, et meil on mingi string, mis sisaldab domeeni:
<?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
$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
$reg = '#([a-z0-9_-]+)\.([a-z]{2,})#';
?>
Nüüd funktsioonis preg_match
kolmanda parameetrina määrame muutuja (mis tahes nimi):
<?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
preg_match($reg, $str, $res);
var_dump($res); // väljastab ['site.ru', 'site', 'ru']
?>
Antud string kuupäevaga:
<?php
$str = '2025-12-31';
?>
Pange aasta, kuu ja päev erinevatesse taskutesse.
Antud string failinimega:
<?php
$str = 'index.html';
?>
Pange failinimi ja selle laiendus erinevatesse taskutesse.