Запіс на курсы па HTML, CSS, JavaScript, PHP, Python, фрэймворкам і CMS,
а таксама: дапамога ў пошуку працы і заказаў, стажыроўка на рэальных праектах→
⊗ppPmRgSP 248 of 447 menu

Кішэні пры пошуку праз рэгуляркі на PHP

Няхай у нас ёсць нейкі радок, які змяшчае дамен:

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

Давайце знойдзем гэты дамен і падзелім яго на часткі: аддзялім імя дамена ад яго зоны. Для гэтага мы выкарыстаем спецыяльныя кішэні рэгулярных выразаў.

Кішэні ўяўляюць сабой элементы масіва, у якія можна пакласці часткі знойдзенага рэгуляркай. У нашым выпадку ў першую кішэнь мы можам пакласці імя дамена, а ў другую - яго зону.

Давайце зробім гэта. Для пачатку напішам рэгулярку, якая знаходзіць дамен у радку:

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

Давайце цяпер у нашай рэгулярцы абазначым, якія часткі ў якую кішэнь павінны трапляць. Гэта робіцца з дапамогай круглых дужак. Давайце вылучым з іх дапамогай частку рэгуляркі, якая шукае імя дамена, і тую частку, якая шукае даменную зону:

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

Цяпер у функцыі preg_match у якасці трэцяга параметра ўкажам зменную (імя любое):

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

У указаную зменную трапіць масіў з знойдзенымі кішэнямі. Пры гэтым у нулявым элеменце масіва будзе ляжаць знойдзены радок, у першым элеменце - першая кішэнь, у другім элеменце - другая кішэнь і гэтак далей:

<?php preg_match($reg, $str, $res); var_dump($res); // выведзе ['site.ru', 'site', 'ru'] ?>

Дадзены радок з датай:

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

Пакладзеце год, месяц і дзень у асобныя кішэні.

Дадзены радок з імём файла:

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

Пакладзеце імя файла і яго пашырэнне ў асобныя кішэні.

byenru