Учебники

14) Регулярное выражение

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

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

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

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

В этом уроке вы узнаете:

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

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

  • preg_match — эта функция используется для сопоставления с образцом в строке. Возвращает true, если совпадение найдено, и false, если совпадение не найдено.
  • 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 используется для простого сопоставления с образцом слова guru в заданном URL.

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

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

Регулярные выражения 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

PHP Preg_replace

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

Код ниже ищет слово гуру в строке.

Он заменяет слово «гуру» словом «гуру», окруженным кодом 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

Метасимволы

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

Метасимвол Описание пример
, Соответствует любому отдельному символу, кроме новой строки /./ соответствует всему, что имеет один символ
^ Соответствует началу или строке / исключает символы / ^ 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 ._-]» соответствует любым буквам в нижнем или верхнем регистре, числам от 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 имеет встроенные функции, а именно preg_match, preg_split и preg_replace, которые поддерживают регулярные выражения.
  • Метасимволы позволяют нам создавать сложные шаблоны