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

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

3 марта 2020 PHP

Регулярные выражения — это мощный алгоритм сопоставления с образцом, который может быть выполнен в одном выражении. Регулярные выражения используют арифметические операторы, такие как (+, -, ^) для создания сложных выражений. Регулярные выражения помогают вам выполнять такие задачи, как проверка адресов электронной почты, 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 используется для простого сопоставления с образцом слова it-blog в заданном URL-адресе.

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

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

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

preg_match (…) — это функция регулярного выражения PHP.
«/it-blog/» — это шаблон регулярного выражения для сопоставления.
«$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, которая выполняет сопоставление с шаблоном, а затем заменяет шаблон чем-то другим.

Медицинские кровати Linet

Код ниже ищет слово it-blog в строке.

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

<?php

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

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

echo $text;

?>

Метасимволы

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

МетасимволОписаниеПример
.Соответствует любому отдельному символу, кроме новой строки/./ соответствует всему, что имеет один символ
^Соответствует началу или строке/исключает символы/^PH/ соответствует любой строке, начинающейся с PH
$Соответствует шаблону в конце строки/ru$/ соответствует it-blog.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 одним файлом

Очень нужная и удобная вещь phpFileManager. Это полноценный инструмент для управления файловой системой из одного файла с множеством функций и поддержкой русского языка. Это инструмент, предназначенный для быстрого управления файлами, а также для проверки конфигурации и безопасности PHP-сервера. Единственный PHP-файл Читать далее

Простая интеграция Яндекс.Кассы на PHP

На сегодняшний день Яндекс.Касса - это один из самых популярных мерчантов для подключения оплаты на любом сайте. Касса позволяет принимать платежи с помощью банковских карт и Яндекс.Денег, а так же подключить онлайн-кассу. Если у вас интернет-магазин на одной из популярных Читать далее

Как создать чат-бота ВКонтакте

В этом руководстве создадим чат-бота ВКонтакте, которого можно добавить не только в сообщения группы, но и в групповую беседу. Бот может прослушивать все сообщения в беседе, и если в каком-то из них будет содержаться определенное слово, фраза или часть текста, Читать далее

Вывод постов из Instagram на сайт с помощью API

У инстраграма нет готового виджета для вывода постов на сайте. В прошлой статье мы рассматривали как создать Instagram виджет для сайта с помощью конструктора. Это самый простой и быстрый способ, и на мой взгляд самый лучший. Единственный его минус, как Читать далее

PHP классы, объекты, методы

Абсолютно любой предмет из нашей жизни мы можем описать по его характеристикам и состоянию, а так же воздействовать на это состояние. Например, ваш автомобиль имеет определенный цвет, марку, двигатель и т.д. Кроме того он может ехать, стоять, набирать или сбавлять Читать далее

Удалить значение из массива на PHP

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

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

В этой статье рассмотрим как создать простого чат-бота для Viber, который будет принимать и отправлять сообщения в чат. Шаг 1 Итак, для начала необходимо зарегистрироваться в сервисе Viber Admin Panel по этой ссылке. Шаг 2 Создаём бота. Для этого заполняем Читать далее

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

*

code