Sakke met regulêre uitdrukkingsoektogte op PHP
Kom ons sê ons het 'n sekere string wat 'n domein bevat:
<?php
$str = 'eee site.ru bbb';
?>
Kom ons soek hierdie domein en verdeel dit in dele: skei die domeinnaam van sy sone af. Vir dit sal ons spesiale sakke van regulêre uitdrukkings gebruik.
Sakke is elemente van 'n array, waarin jy dele van wat gevind is deur die regulêre uitdrukking kan plaas. In ons geval kan ons die domeinnaam in die eerste sak plaas, en die sone daarvan in die tweede.
Kom ons doen dit. Laat ons eers die regulêre uitdrukking skryf wat die domein in die string vind:
<?php
$reg = '#[a-z0-9_-]+\.[a-z]{2,}#';
?>
Kom ons dui nou in ons regulêre uitdrukking aan, watter dele in watter sak moet beland. Dit word gedoen met ronde hakies. Laat ons die deel van die regulêre uitdrukking wat die domeinnaam soek, en die deel wat die domeinsone soek, daarmee uitsonder:
<?php
$reg = '#([a-z0-9_-]+)\.([a-z]{2,})#';
?>
Nou, in die funksie preg_match, spesifiseer ons
'n veranderlike (enige naam) as die derde parameter:
<?php
preg_match($reg, $str, $res);
?>
Die gespesifiseerde veranderlike sal 'n array met die gevonde sakke bevat. Terselfdertyd sal die gevonde string in die nulste element van die array wees, in die eerste element - die eerste sak, in die tweede element - die tweede sak, ensovoorts:
<?php
preg_match($reg, $str, $res);
var_dump($res); // sal uitdruk ['site.ru', 'site', 'ru']
?>
Gegee 'n string met 'n datum:
<?php
$str = '2025-12-31';
?>
Plaas die jaar, maand en dag in aparte sakke.
Gegee 'n string met 'n lêernaam:
<?php
$str = 'index.html';
?>
Plaas die lêernaam en sy uitbreiding in aparte sakke.