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

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

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

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

  • Регулярные выражения PHP упрощают выявление шаблонов в строковых данных, вызывая одну функцию. Это экономит нам время на кодирование.
  • При проверке ввода пользователя, такого как email адрес, доменные имена, номера телефонов, 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 для выполнения простого сопоставления шаблона слова «гуру» в заданном 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_split()

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

PHP Preg_replace()

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

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

Метасимвол Описание Пример
. Соответствует любому отдельному символу, кроме новой строки. /./ соответствует всему, что имеет один символ
^ Соответствует началу или строке/исключает символы /^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

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

Давайте теперь посмотрим на довольно комplex пример, который проверяет достоверность email адрес.

<?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

[/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/]

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

Итоги

  • Регулярное выражение или регулярное выражение в PHP — это алгоритм сопоставления с образцом.
  • Регулярные выражения очень полезны при выполнении проверок, создании систем шаблонов HTML, распознающих теги и т. д.
  • PHP имеет встроенные функции PHP preg_match(), PHP preg_split() и PHP preg_replace(), которые поддерживают регулярные выражения.
  • Метасимволы позволяют нам создавать комplex паттеранами