php

Використання функції preg_match () у PHP

Використання функції preg_match () у PHP

Регулярний вираз - це певний шаблон, який можна використовувати для зіставлення, пошуку та заміни будь-якого конкретного рядка в текстових даних. Це потужна функція будь-якої мови програмування. Він в основному використовується для виконання різних типів перевірки форм, таких як перевірка електронної пошти, перевірка формату телефону, перевірка полів імені користувача та пароля форми входу тощо. Будь-який конкретний вміст тексту можна шукати та замінювати за допомогою шаблону регулярних виразів. Його також називають регулярним виразом або RegExp. Для визначення шаблону регулярних виразів використовуються різні типи символів.

Багато вбудованих функцій існує в PHP для регулярного виразу. функція preg_match () - одна з них. Ця функція використовується для узгодження певного шаблону в рядкових даних. Про те, як функцію preg_match () можна використовувати в PHP для виконання різних завдань, пояснюється в цьому посібнику.

Синтаксис:

Int або false preg_match (рядок $ pattern, string $ subject [, array & $ matches = null [, int $ flags = 0 [, int $ offset = 0]]])

Ця функція може приймати п’ять аргументів. Перший аргумент, $ шаблон, є обов’язковим, що визначає шаблон для відповідності. Другий аргумент, $ тема, є обов’язковим і містить рядкові дані, у яких буде застосовано шаблон. Третій аргумент, $ збігів, є необов’язковим і повертає масив на основі відповідності. Четвертий аргумент, $ прапори, є необов’язковим, що містить різні типи значень прапорів на основі відповідності. Аргумент п’ятий, $ зміщення, є необов’язковим і може використовуватися для визначення початкової позиції пошуку.

Приклад 1: Установіть відповідність між шаблоном з урахуванням регістру та без урахування регістру

У наступному прикладі показано використання функції preg_match () для узгодження рядка з урахуванням регістру та без урахування регістру. Створіть PHP-файл за допомогою наступного сценарію.

Тут використовуються три шаблони для застосування у трьох функціях preg_match (). Перший зразок, '/Подібно до/', використовується для узгодження рядка з урахуванням регістру. Другий зразок, '/подібно до/', використовується для узгодження рядка з урахуванням регістру. Третій зразок, "Подобається / я", використовується для узгодження рядка з урахуванням регістру. search_pattern () функція визначена в сценарії для використання функції preg_match () для відповідності, і вона друкує повідомлення на основі поверненого значення цієї функції.

// Визначимо текст
$ text = "Мені подобається PHP. Мені також подобається JavaScript.";
// Визначимо три типи візерунка
$ pattern1 = '/ Подобається /';
$ pattern2 = '/ подобається /';
$ pattern3 = '/ Подобається / i';
// Визначити функцію пошуку за шаблоном у тексті
функція search_pattern ($ pattern, $ string)

if (preg_match ($ pattern, $ string))
echo "Результат пошуку: Знайдено відповідність для шаблону - $ pattern
";
ще
echo "Результат пошуку: Не знайдено відповідності для шаблону - $ pattern
";

// Роздрукувати оригінальний текст
echo "Оригінальний текст: $ текст
";
// Виклик функції тричі для трьох шаблонів
шаблон пошуку_ ($ pattern1, $ text);
шаблон пошуку_ ($ pattern2, $ text);
шаблон пошуку_ ($ pattern3, $ text);
?>

Вихідні дані:

Наступний результат з’явиться після запуску сценарію з сервера. Перший рядок показує текст, де шукали візерунки. Другий рядок показує вихід першого шаблону. Третій рядок показує вихід другого шаблону. Четвертий рядок показує вихід третього шаблону.

Приклад 2: Перевірте URL-адресу

Наступний приклад показує спосіб перевірки URL-адреси за допомогою функції preg_match (). Створіть PHP-файл за допомогою наступного сценарію.

Значення URL-адреси призначається для змінної $ url для тестування. '@ ^ (?: https: //)?([^ /] +) @ i 'рядок використовується як шаблон у функції preg_match (), щоб перевірити, чи є URL-адреса дійсною чи ні. Якщо воно дійсне, тоді ім'я хоста та ім'я домену будуть надруковані, інакше повідомлення про помилку буде надруковано.

// Визначити URL-адресу
$ url = "https: // www.linuxhint.com ";
// Визначте шаблон для перевірки URL-адреси
$ pattern = '@ ^ (?: https: //)?([^ /] +) @ i ';
// Перевірте правильність URL-адреси чи ні
if (preg_match ($ pattern, $ url, $ matches1))

// Роздрукувати повідомлення про успіх
echo "URL-адреса дійсна.
";
// Вивести масив, що містить значення відповідності
echo "Значення масиву:";
print_r ($ match1);
// Отримання та друк значення хоста
$ host = $ match1 [1];
ехо "
Ім'я хоста: $ host ";
// Пошук доменного імені за значенням хоста
preg_match ('/ [^.] + \.[^.] + $ / ', $ host, $ match2);
ехо "
Ім'я домену: $ match2 [0] ";

ще

// Роздрукувати повідомлення про помилку
echo "Недійсна URL-адреса.";

?>

Вихідні дані:

Наступний результат з’явиться після запуску сценарію з сервера. Надана URL-адреса в сценарії є дійсною. Отже, результати показують значення $ збігів, ім’я хосту URL-адреси та доменне ім’я URL-адреси.

Приклад 3: Шаблон пошуку зі значеннями прапора та зміщення

У наступному прикладі показано використання прапора та значень зміщення у функції preg_match (). Створіть PHP-файл за допомогою наступного сценарію.

Три сценарії використовуються в сценарії для трьох типів відповідності. У першій функції preg_match () як шаблон і значення прапора використовується '/ (bangla) (desh) /', використовується PREG_OFFSET_CAPTURE. Значення $ збігів змінна буде друкуватися на основі результатів першої функції preg_match (). У другій функції preg_match () як шаблон і значення прапора використовується '/ (bangla) (glad) * (desh) / i', використовується PREG_UNMATCHED_AS_NULL. Якщо будь-яка частина шаблону не збігається, тоді в масиві буде збережено значення NULL. Значення $ збігів змінна буде друкуватися на основі результатів роботи другої функції preg_match (). У третій функції preg_match () як шаблон використовується '/ glad /', використовується значення прапора, PREG_OFFSET_CAPTURE, а 3 - як значення зміщення. Значення $ збігів змінна буде друкуватися на основі результатів третьої функції preg_match ().

// Визначимо текстове значення
$ text = "Бангладеш";
// Визначимо три типи зразків
$ pattern1 = '/ (bangla) (desh) / i';
$ pattern2 = '/ (bangla) (раді) * (desh) / i';
$ pattern3 = '/ раді /';
// Використання прапора PREG_OFFSET_CAPTURE
preg_match ($ pattern1, $ text, $ matches, PREG_OFFSET_CAPTURE);
ехо "
";
print_r ($ збігів);
ехо "

";
// Використання прапора PREG_UNMATCHED_AS_NULL
preg_match ($ pattern2, $ text, $ matches, PREG_UNMATCHED_AS_NULL);
ехо "
";
print_r ($ збігів);
ехо "

";
// Використання PREG_OFFSET_CAPTURE прапора та значення зміщення
preg_match ($ pattern3, $ text, $ match, PREG_OFFSET_CAPTURE, 3);
ехо "
";
print_r ($ збігів);
ехо "
";
?>

Вихідні дані:

Наступний результат з’явиться після запуску сценарію з сервера.

Висновок

Використання функції preg_match () було описано в цьому посібнику на декількох прикладах. Тут також показано використання різних аргументів цієї функції. Читачі зможуть правильно використовувати цю функцію у своєму сценарії після прочитання цього посібника.

Як встановити League of Legends на Ubuntu 14.04
Якщо ви шанувальник League of Legends, то це можливість для вас тестувати League of Legends. Зверніть увагу, що LOL підтримується на PlayOnLinux, якщо...
Встановіть останню стратегічну гру OpenRA на Ubuntu Linux
OpenRA - це ігровий движок Libre / Free Real Time Strategy, який відтворює ранні ігри Вествуда, такі як класичний Command & Conquer: Red Alert. Пошире...
Встановіть найновіший емулятор Dolphin для Gamecube & Wii на Linux
Емулятор Dolphin дозволяє грати у вибрані вами ігри Gamecube та Wii на персональних комп’ютерах Linux (ПК). Будучи вільно доступним і відкритим ігров...