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

Что такое регулярные выражения в 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_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
Метасимволы регулярных выражений
В приведенных выше примерах использовались очень простые шаблоны. Метасимволы позволяют выполнять более сложные сопоставления с шаблонами, например, проверку корректности адреса электронной почты. Давайте теперь рассмотрим наиболее часто используемые метасимволы.
| Метасимвол | Описание | Пример |
|---|---|---|
| . | Соответствует любому отдельному символу, кроме новой строки. | /./ соответствует всему, что имеет один символ |
| ^ | Соответствует началу строки или исключает символы. | /^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
Как видно из приведенного выше анализа, метасимволы очень эффективны при сопоставлении шаблонов.




