Taskut PHP:n säännöllisissä lausekkeissa
Oletetaan, että meillä on jokin merkkijono, joka sisältää verkkotunnuksen:
<?php
$str = 'eee site.ru bbb';
?>
Etsitään tämä verkkotunnus ja jaetaan se osiin: erotetaan verkkotunnuksen nimi sen vyöhykkeestä. Tätä varten käytämme säännöllisten lausekkeiden erikoista taskuja.
Taskut ovat taulukon elementtejä, joihin voidaan sijoittaa säännöllisellä lausekkeella löydetyn osia. Meidän tapauksessamme voimme sijoittaa ensimmäiseen taskuun verkkotunnuksen nimen ja toiseen - sen vyöhykkeen.
Tehdään tämä. Aluksi kirjoitetaan säännöllinen lauseke, joka löytää verkkotunnuksen merkkijonosta:
<?php
$reg = '#[a-z0-9_-]+\.[a-z]{2,}#';
?>
Määritellään nyt säännöllisessä lausekkeessamme, mitä osia mihin taskuun tulisi pudota. Tämä tehdään pyöreiden sulkeiden avulla. Korostetaan niiden avulla säännöllisen lausekkeen osan, joka etsii verkkotunnuksen nimen, ja osan, joka etsii verkkotunnusvyöhykkeen:
<?php
$reg = '#([a-z0-9_-]+)\.([a-z]{2,})#';
?>
Nyt preg_match-funktiossa
kolmantena parametrina määritetään muuttuja (mikä tahansa nimi):
<?php
preg_match($reg, $str, $res);
?>
Määritettyyn muuttujaan tulee taulukko, joka sisältää löydetyt taskut. Tässä tapauksessa taulukon nollas elementti sisältää löydetyn merkkijonon, ensimmäinen elementti - ensimmäinen tasku, toisessa elementissä - toinen tasku ja niin edelleen:
<?php
preg_match($reg, $str, $res);
var_dump($res); // tulostaa ['site.ru', 'site', 'ru']
?>
Annettu merkkijono, joka sisältää päivämäärän:
<?php
$str = '2025-12-31';
?>
Sijoita vuosi, kuukausi ja päivä omiin taskuihinsa.
Annettu merkkijono, joka sisältää tiedoston nimen:
<?php
$str = 'index.html';
?>
Sijoita tiedoston nimi ja sen tiedostopääte omiin taskuihinsa.