Skip to main content

Регулярные выражения PHP: preg_match, preg_split, preg_replace

Регулярные выражения PHP: preg_match, preg_split, preg_replace

Регулярные выражения — это мощный алгоритм сопоставления с образцом, который может быть выполнен в одном выражении. Регулярные выражения используют арифметические операторы, такие как (+, -, ^) для создания сложных выражений. Регулярные выражения помогают вам выполнять такие задачи, как проверка адресов электронной почты, IP-адресов и т. д.

Зачем использовать регулярные выражения

  • Регулярные выражения упрощают идентификацию шаблонов в строковых данных, вызывая одну функцию. Это экономит нам время написания кода.
  • При проверке ввода пользователем данных, таких как адрес электронной почты, доменные имена, номера телефонов, IP-адреса.
  • Выделение ключевых слов в результатах поиска.
  • При создании пользовательского шаблона HTML. Регулярные выражения могут использоваться для идентификации тегов шаблона и замены их фактическими данными.

Регулярные выражения в PHP

PHP имеет встроенные функции, которые позволяют нам работать с регулярными выражениямии. Давайте теперь посмотрим на часто используемые функции регулярных выражений в PHP.

preg_match — эта функция используется для сопоставления с образцом в строке. Она возвращает истину, если совпадение найдено, и ложь, если совпадение не найдено.
preg_split — эта функция используется для сопоставления с образцом в строке, а затем разбивает результаты в числовой массив.
preg_replace — эта функция используется для сопоставления с образцом строки и затем замены совпадения указанным текстом.
Ниже приведен синтаксис функции регулярного выражения, такой как preg_match, preg_split или preg_replace:

<?php
function_name('/pattern/',subject);
?>

«function_name (…)» это либо preg_match, preg_split, либо preg_replace.
«/…/» Косая черта обозначает начало и конец нашего регулярного выражения.
«/ pattern /» — это шаблон, который нам нужен.
«subject» — текстовая строка, с которой нужно сопоставить.

Давайте теперь посмотрим на практические примеры, которые реализуют вышеупомянутые функции регулярных выражений в PHP.

PHP preg_match

В первом примере функция preg_match используется для простого сопоставления с образцом слова progme в заданном URL-адресе.

Код ниже показывает реализацию для приведенного выше примера.

<?php
$my_url = "www.progme.ru";
if (preg_match("/progme/", $my_url))
{
	echo "Строка $my_url содержит progme";
}
else
{
	echo "Строка $my_url не содержит progme";
}
?>

Давайте рассмотрим часть кода, отвечающую за наш вывод «preg_match (‘/ progme /’, $ my_url)»

preg_match (…) — это функция регулярного выражения PHP.
«/progme/» — это шаблон регулярного выражения для сопоставления.
«$my_url» — это переменная, содержащая текст для сопоставления.

PHP preg_split

Давайте теперь посмотрим на другой пример, который использует функцию preg_split.

Мы возьмем строковую фразу и создадим из неё массив по шаблону: элемент/пробел.

Текстовая строка для использования в этом примере — «Я люблю регулярные выражения».

Код ниже иллюстрирует реализацию приведенного выше примера.

<?php

$my_text="Я люблю регулярные выражения";

$my_array  = preg_split("/ /", $my_text);

print_r($my_array );

?>

PHP preg_replace

Давайте теперь посмотрим на функцию preg_replace, которая выполняет сопоставление с шаблоном, а затем заменяет шаблон чем-то другим.

Код ниже ищет слово progme в строке.

Он заменяет слово «progme» словом « progme», окруженным кодом CSS, который выделяет цвет фона.

<?php

$text = "Статьи по веб-программированию. progme.ru";

$text = preg_replace("/progme.ru/", '<span style="background:yellow">progme.ru</span>', $text);

echo $text;

?>

Метасимволы

В приведенных выше примерах использовались очень простые шаблоны. Метасимволы позволяют нам выполнять более сложные сопоставления с образцом, например проверять правильность адреса электронной почты. Давайте теперь посмотрим на часто используемые метасимволы.

МетасимволОписаниеПример
.Соответствует любому отдельному символу, кроме новой строки/./ соответствует всему, что имеет один символ
^Соответствует началу или строке/исключает символы/^PH/ соответствует любой строке, начинающейся с PH
$Соответствует шаблону в конце строки/ru$/ соответствует progme.ru и т.д.
*Соответствует любому нулю (0) или более символов/com*/ соответствует computer, communication и т. д.
+Требуется, чтобы предшествующие символы появлялись хотя бы раз/yah+oo/ соответствует yahoo
\Используется для экранирования метасимволов/yahoo+\.com/ трактует точку как буквальное значение
[…]Символы внутри скобках/[abc]/ соответствует abc
a-zСоответствует строчным буквам/a-z/ соответствует cool, happy и т.д.
A-ZСоответствует заглавным буквам/A-Z/ соответствует WHAT, HOW, WHY и т.д.
0-9Соответствует любому числу от 0 до 9/0-4/ соответствует 0,1,2,3,4

Приведенный выше список содержит только наиболее часто используемые метасимволы в регулярных выражениях.

Давайте теперь рассмотрим довольно сложный пример, который проверяет действительность адреса электронной почты.

<?php
$my_email = "name@company.com
	";
if (preg_match("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/", $my_email)) {
echo "$my_email это действительный адрес электронной почты";
}
else
{
  echo "$my_email это не действительный адрес электронной почты";
}
?>

Шаблон «[/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/]»

«/…/» запускает и заканчивает регулярное выражение.
«^ [a-zA-Z0-9 ._-]» соответствует буквам в нижнем или верхнем регистре, числам от 0 до 9 и точкам, подчеркиванию или тире.
«+ @ [a-zA-Z0-9-]» соответствует символу @, за которым следуют строчные или прописные буквы, цифры от 0 до 9 или тире.
«+ . [a-zA-Z.] {2,5} $ /» экранирует точку, используя обратную косую черту, а затем сопоставляет любые буквы в нижнем или верхнем регистре с длиной символов от 2 до 5 в конце строки.

Как видно из приведенного выше примера разбивки, метасимволы очень эффективны, когда речь идет о сопоставлении шаблонов.

Подытожим

  • Регулярное выражение — это алгоритм сопоставления с образцом.
  • Регулярные выражения очень полезны при выполнении проверок достоверности, создании систем шаблонов HTML, которые распознают теги и т. д.
  • PHP имеет встроенные функции, а именно preg_match, preg_split и preg_replace, которые поддерживают регулярные выражения.
  • Метасимволы позволяют нам создавать сложные шаблоны.
Похожие записи
Удалить значение из массива на PHP

Удалить значение из массива по ключу на PHP довольно простая задача, но вот когда необходимо... Читать далее

Создание чат-бота для Viber

В этой статье рассмотрим как создать простого чат-бота для Viber, который будет принимать и отправлять... Читать далее

Парсер XML PHP с использованием SimpleXML. Примеры

Существует несколько способов парсить XML-данные с использованием PHP, один из которых - SimpleXML. В предыдущей... Читать далее

Интеграция/чтение RSS PHP. PHP скрипт вывода RSS

В PHP начиная с 5 версии есть встроенная библиотека для работы с XML данными SimpleXML.... Читать далее

Отправка письма с вложениями на PHP и AJAX

Мы уже рассматривали, как сделать форму обратной связи на PHP и Ajax. Сегодня мы модернизируем... Читать далее

PHP работа с изображениями. Библиотека PHP GD

PHP является мощным языком сценариев, и существует множество мощных плагинов. Одним из них является GD,... Читать далее

Добавить комментарий

*

code