PHP preg_match(): Регулярні вирази (Regex)
Що таке регулярний вираз у 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); ?>
ТУТ,
- “function_name(…)” – це 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 який виконує збіг шаблону, а потім замінює шаблон чимось іншим.
Наведений нижче код шукає слово гуру в a рядок.
Він замінює слово 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 тощо. |
* | Відповідає будь-якому нулю (0) або більше символів | /com*/ відповідає комп’ютеру, зв’язку тощо. |
+ | Необхідно, щоб попередні символи з’являлися принаймні один раз | /yah+oo/ відповідає yahoo |
\ | Використовується для екранування метасимволів | /yahoo+\.com/ розглядає крапку як буквальне значення |
[...] | Клас символів | /[abc]/ відповідає abc |
Арізона | Відповідає малим регістрам | /az/ відповідає cool, happy тощо. |
А-Я | Відповідає великим регістрам | /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(), які підтримують регулярні вирази.
- Метасимволи дозволяють нам створювати складні шаблони