Что такое регулярное выражение в PHP?
Регулярное выражение PHP, также известное как регулярные выражения, является мощным алгоритмом сопоставления с образцом, который может быть выполнен в одном выражении. Регулярные выражения используют арифметические операторы, такие как (+, -, ^) для создания сложных выражений. Они могут помочь вам выполнить такие задачи, как проверка адресов электронной почты, IP-адреса и т. Д.
Зачем использовать регулярные выражения
- Регулярные выражения упрощают идентификацию шаблонов в строковых данных, вызывая одну функцию. Это экономит нам время кодирования.
- При проверке ввода пользователя, такого как адрес электронной почты, доменные имена, номера телефонов, IP-адреса,
- Выделение ключевых слов в результатах поиска
- При создании пользовательского шаблона HTML. Регулярные выражения могут использоваться для идентификации тегов шаблона и замены их фактическими данными.
В этом уроке вы узнаете:
- Встроенные функции регулярных выражений в PHP
- preg_match
- preg_split
- preg_replace
- Метасимволы
- Объясняя шаблон
Встроенные функции регулярных выражений в 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
Давайте рассмотрим часть кода, отвечающую за наш вывод » 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, которая выполняет сопоставление с шаблоном, а затем заменяет шаблон чем-то другим.
Код ниже ищет слово гуру в строке.
Он заменяет слово «гуру» словом «гуру», окруженным кодом 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 = "[email protected]";
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
Как видно из приведенного выше примера разбивки, метасимволы очень эффективны, когда речь идет о сопоставлении шаблонов.
Резюме
- Регулярное выражение - это алгоритм сопоставления с образцом
- Регулярные выражения очень полезны при выполнении проверок достоверности, создании систем шаблонов HTML, которые распознают теги и т. Д.
- PHP имеет встроенные функции, а именно preg_match, preg_split и preg_replace, которые поддерживают регулярные выражения.
- Метасимволы позволяют нам создавать сложные шаблоны