PHP preg_match(): регулярные выражения (регулярное выражение)
Что такое регулярное выражение в PHP?
Регулярное выражение PHP также известные как регулярные выражения, представляют собой мощный алгоритм сопоставления с образцом, который можно выполнить в одном выражении. Регулярные выражения используют арифметические операторы, такие как (+,-,^), для создания сложных выражений. Они могут помочь вам выполнить такие задачи, как проверка адресов электронной почты, IP-адреса и т. д.
Зачем использовать регулярные выражения
- Регулярные выражения PHP упрощают выявление шаблонов в строковых данных, вызывая одну функцию. Это экономит нам время на кодирование.
- При проверке вводимых пользователем данных, таких как адрес электронной почты, имена доменов, номера телефонов, IP-адреса,
- Выделение ключевых слов в результатах поиска
- При создании пользовательского шаблона HTML. Regex в PHP можно использовать для идентификации тегов шаблона и замены их фактическими данными.
Встроенные функции регулярных выражений в PHP
PHP имеет встроенные функции, которые позволяют нам работать с обычными функциями, которые мы изучим в этом руководстве по регулярным выражениям PHP. Давайте посмотрим на часто используемые функции регулярных выражений в PHP.
- preg_match() в PHP – эта функция используется для сопоставления строки с образцом в PHP. Он возвращает true, если совпадение найдено, и false, если совпадение не найдено.
- preg_split() в PHP — эта функция используется для сопоставления строки с шаблоном, а затем разделения результатов на числовой массив.
- preg_replace() в PHP — эта функция используется для сопоставления строки с шаблоном и последующей замены совпадения указанным текстом.
Ниже приведен синтаксис функции регулярного выражения, такой как PHP preg_match(), PHP preg_split() или PHP preg_replace().
<?php
function_name('/pattern/',subject);
?>
ВОТ,
- «имя_функции(…)» — это PHP preg_match(), PHP preg_split() или PHP preg_replace().
- «/…/» Косая черта обозначает начало и конец нашей функции проверки регулярных выражений PHP.
- «'/pattern/'» — это шаблон, который нам нужно сопоставить.
- «Тема» — это текстовая строка, с которой будет сопоставляться
Давайте теперь посмотрим на практические примеры, реализующие вышеуказанные функции регулярных выражений PHP.
Preg_match() в PHP
В первом примере используется функция preg_match() из PHP для выполнения простого поиска по шаблону слова 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.
Мы возьмем строковую фразу и разложим ее на массив; шаблон, который нужно сопоставить, представляет собой один пробел.
Текстовая строка, которая будет использоваться в этом примере, — «Я люблю регулярные выражения».
Код ниже иллюстрирует реализацию приведенного выше примера.
<?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.
Он заменяет слово «гуру» словом «гуру», окруженным кодом 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 и т. д. |
| * | Соответствует любому нулю (0) или более символам. | /com*/ соответствует компьютеру, средствам связи и т. д. |
| + | Требуется, чтобы предшествующие символы появлялись хотя бы один раз. | /yah+oo/ соответствует Yahoo |
| \ | Используется для экранирования метасимволов. | /yahoo+\.com/ рассматривает точку как буквальное значение. |
| [...] | Класс персонажа | /[abc]/ соответствует abc |
| Аризона | Соответствует строчным буквам | /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._-]+@[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 в конце строки.
Перейдите к URL http://localhost/phptuts/preg_match.php
Как вы можете видеть из приведенного выше примера, метасимволы очень эффективны, когда дело доходит до сопоставления шаблонов.
Резюме
- Регулярное выражение или регулярное выражение в PHP — это алгоритм сопоставления с образцом.
- Регулярные выражения очень полезны при выполнении проверок, создании систем шаблонов HTML, распознающих теги и т. д.
- PHP имеет встроенные функции PHP preg_match(), PHP preg_split() и PHP preg_replace(), которые поддерживают регулярные выражения.
- Метасимволы позволяют нам создавать сложные шаблоны




![[/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/]](https://www.guru99.com/images/2013/04/validate_email.png)