PHP preg_match(): регулярные выражения (регулярное выражение)

⚡ Умное резюме

Регулярные выражения в PHP — это инструменты сопоставления с шаблонами, которые позволяют проверять, разделять и заменять текст в одном выражении. В этом пошаговом руководстве рассматриваются основные функции preg_match, preg_split и preg_replace, объясняются распространенные метасимволы и пошагово создается работающий шаблон проверки электронной почты.

  • 🧩 Что такое регулярное выражение: Регулярное выражение — это шаблон, описывающий текст, позволяющий одной функции проверять, искать или преобразовывать строки.
  • preg_match: Функция preg_match проверяет, встречается ли шаблон в строке, и возвращает true при первом совпадении, что идеально подходит для валидации.
  • ✂️ preg_split: Функция preg_split разбивает строку на массив в тех местах, где встречается заданный шаблон, например, разделяет предложение по пробелам.
  • 🔁 preg_replace: Функция preg_replace находит все совпадения с заданным шаблоном и заменяет их новым текстом, что полезно для создания шаблонов и выделения текста.
  • 🔤 Метаперсонажи: Символы, такие как ., ^, $, *, и +, образуют сложные узоры, например, привязывая совпадение к началу или концу.
  • ???? Шаблон электронного письма: Классы символов и кванторы объединяются в единый шаблон, который проверяет правильность формирования адреса электронной почты.
  • 🤖 AI-помощь: Инструменты искусственного интеллекта могут создавать регулярные выражения на основе простого описания и объяснять или отлаживать сложные существующие шаблоны.

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

Что такое регулярные выражения в PHP?

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

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

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

Встроенные функции регулярных выражений в PHP

В PHP есть встроенные функции, позволяющие работать с регулярными выражениями, которые мы изучим в этом уроке. Рассмотрим наиболее часто используемые функции для работы с регулярными выражениями в PHP.

  • Функция `preg_match()` в PHP используется для сопоставления строк с шаблонами. Она возвращает `true`, если совпадение найдено, и `false`, если совпадение не найдено.
  • Функция preg_split() в PHP используется для поиска шаблона в строке и последующего разделения результата на числовой массив.
  • preg_replace() в PHP — эта функция используется для сопоставления строки с шаблоном и последующей замены совпадения указанным текстом.

Ниже приведён синтаксис функций регулярных выражений, таких как preg_match(), preg_split() или preg_replace().

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

ВОТ,

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

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

Preg_match() в PHP

В первом примере используется функция preg_match() для выполнения простого поиска по шаблону слова guru в заданном тексте. URL.

Приведённый ниже код демонстрирует реализацию функции preg_match() для приведённого выше примера.

<?php
$my_url = "www.guru99.com";
if (preg_match("/guru/", $my_url))
{
echo "the url $my_url contains guru";
}
else
{
echo "the url $my_url does not contain guru";
}
?>

Перейдите к URL http://localhost/phptuts/preg_match_simple.php

Встроенные функции регулярных выражений

Давайте рассмотрим ту часть кода, которая отвечает за наш вывод. preg_match('/guru/', $my_url). ЗДЕСЬ,

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

PHP Preg_split()

Рассмотрим теперь еще один пример, в котором используется функция preg_split().

Мы возьмем строковую фразу и разложим ее на массив; шаблон, который нужно сопоставить, представляет собой один пробел.

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

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

<?php

$my_text = "I Love Regular Expressions";

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

print_r($my_array );

?>

Перейдите к URL http://localhost/phptuts/preg_split.php

PHP Preg_split()

PHP Preg_replace()

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

Приведенный ниже код ищет слово «гуру» в string.

Это заменяет слово «guru» на слово «guru», окруженное CSS-кодом, который подсвечивает цвет фона.

<?php

$text = "We at Guru99 strive to make quality education affordable to the masses. Guru99.com";

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

echo $text;

?>

Предполагая, что вы сохранили файл preg_replace.php, перейдите по указанному пути. URL http://localhost/phptuts/preg_replace.php

PHP Preg_replace()

Метасимволы регулярных выражений

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

Метасимвол Описание Пример
. Соответствует любому отдельному символу, кроме новой строки. /./ соответствует всему, что имеет один символ
^ Соответствует началу строки или исключает символы. /^PH/ соответствует любой строке, начинающейся с PH.
$ Соответствует шаблону в конце строки. /com$/ соответствует guru99.com, yahoo.com и т. д.
* Совпадает с нулем или более из предыдущих символов /com*/ соответствует компьютеру, средствам связи и т. д.
+ Требуется, чтобы предшествующий символ (или символы) появился (появились) хотя бы один раз. /yah+oo/ соответствует Yahoo
\ Используется для выхода за пределы метасимволов /yahoo+\.com/ рассматривает точку как буквальное значение.
[...] Класс персонажа /[abc]/ соответствует a, b или c
Аризона Соответствует строчным буквам /az/ соответствует классному, счастливому и т. д.
А-Я Соответствует заглавным буквам /AZ/ соответствует ЧТО, КАК, ПОЧЕМУ и т. д.
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 is a valid email address";
}
else
{
echo "$my_email is NOT a valid email address";
}
?>

Объяснение схемы проверки электронной почты

ВОТ,

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

Перейдите к URL http://localhost/phptuts/preg_match.php

Шаблон проверки электронной почты в PHP

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

Часто задаваемые вопросы (FAQ)

Функция preg_match останавливается на первом совпадении и заполняет переменную $matches этим единственным результатом. Функция preg_match_all находит все совпадения в строке и возвращает их все во вложенном массиве, что подходит, например, дляtracповторяющиеся элементы.

Модификаторы следуют за закрывающим разделителем и изменяют поведение сопоставления. Модификатор i делает шаблон нечувствительным к регистру, m обрабатывает каждую строку отдельно для ^ и $, а s позволяет точке сопоставлять символы новой строки, как в /guru/i.

Для создания групп захвата заключите части шаблона в скобки. После preg_match полное совпадение находится в $matches[0], а каждая группа следует в $matches[1], $matches[2] и так далее.

Да. Опишите текст, который вы хотите сопоставить, например, номер телефона или формат даты, и ИИ сможет сгенерировать шаблон, а также пример preg_match. Перед тем как полагаться на него, протестируйте его на реальных и нестандартных входных данных.

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

Подведем итог этой публикации следующим образом: