Регулярные выражения 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 = "[email protected]
	";
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 отправляющий сообщения с сайта

Что если сообщения с сайта будут приходить не только на ваш e-mail, но и моментально в мессенджер телеграм. Удобно же! Нужно было реализовать такой функционал, ну как и всегда все оказалось довольно просто. Так же стояла задача отправлять сообщения не Читать далее

Отправка формы без перезагрузки страницы на PHP и Ajax

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

Вывести на PHP месяц и день недели на русском

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

Парсер яндекс погоды на PHP

Рабочий пример PHP парсера, который получает погоду с Яндекса по ID города. Скрипт сохраняет данные в файле кеша на сайте, и обновляет его раз в час. Так же расскажу как выводить на сайте собственные иконки погоды вместо стандартных от Яндекса. Читать далее

Как встроить видео с YouTube канала на сайт

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

Курсы доллара и евро с сайта Центробанка на PHP

Парсер получает курсы доллара и евро с сайта Центробанка каждые 24 часа и записывает их в файл кеша /log/course.txt Скрипт полностью готов к работе и не требует каких-либо дополнительных настроек. <? function loadCourse(){ define("tsCourse","15:00:00"); # Время смены курса центральным банком Читать далее

Календарь на PHP и Ajax

Пример календаря на PHP и Ajax с переключением месяцев. Можно использовать как заготовку для решения любых задач. Я использовал его для создания плагина календаря мероприятий на WordPress. Скрипт использует процедурный подход, но имеет разделенную структуру с шаблоном , что довольно Читать далее

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