php

Използване на функцията preg_match () в PHP

Използване на функцията preg_match () в PHP

Регулярният израз е определен модел, който може да се използва за съвпадение, търсене и замяна на всеки конкретен низ в текстови данни. Това е мощна функция на всеки език за програмиране. Използва се главно за извършване на различни типове валидиране на формуляри, като валидиране на имейл, проверка на телефонния формат, валидиране на полетата за потребителско име и парола на формуляра за вход и т.н. Всяко конкретно съдържание на текста може да бъде търсено и заменено с помощта на шаблон на регулярен израз. Нарича се още regex или RegExp. За дефиниране на шаблона на регулярните изрази се използват различни видове символи.

В PHP съществуват много вградени функции за регулярния израз. функцията preg_match () е една от тях. Тази функция се използва за съвпадение на определен модел в низови данни. Как функцията preg_match () може да се използва в PHP за изпълнение на различни задачи е обяснено в този урок.

Синтаксис:

Int или false preg_match (низ $ образец, низ $ предмет [, масив & $ съвпадения = нула [, int $ знамена = 0 [, int $ офсет = 0]]])

Тази функция може да отнеме пет аргумента. Първият аргумент, $ модел, е задължително, което определя модела за съвпадение. Вторият аргумент, $ тема, е задължително и съдържа данните за низа, в които ще бъде приложен шаблонът. Третият аргумент, $ съвпадения, е по избор и връща масив въз основа на съвпадението. Четвъртият аргумент, $ знамена, е по избор, което съдържа различни видове стойности на флаговете въз основа на съвпадението. Петият аргумент, $ компенсиране, е по избор и може да се използва за определяне на началната позиция на търсенето.

Пример 1: Съвпадение на шаблона по регистър на буквите и без регистрация

Следващият пример показва използването на функцията preg_match () за съвпадение на низа по начин, чувствителен на малки и малки букви. Създайте PHP файл със следния скрипт.

Тук се използват три модела за прилагане в три функции preg_match (). Първият модел, '/Като/', се използва за съвпадение на низа по регистър на буквите. Вторият модел, '/като/', се използва за съвпадение на низа по начин, чувствителен на малки и големи букви. Третият модел, 'Като мен', се използва за съвпадение на низа по регистър без значение. шаблон за търсене () функция е дефинирана в скрипта, за да използва функцията 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, $ match1))

// Отпечатваме съобщението за успех
echo "URL адресът е валиден.
";
// Отпечатваме масива, който съдържа съответстващите стойности
echo "Стойностите на масива са:";
print_r ($ match1);
// Извличане и отпечатване на стойността на хоста
$ хост = $ съвпадения1 [1];
ехо "
Името на хоста е: $ host ";
// Търсене на името на домейна от стойността на хоста
preg_match ('/ [^.] + \.[^.] + $ / ', $ хост, $ съвпадения2);
ехо "
Името на домейна е: $ match2 [0] ";

друго

// Отпечатваме съобщението за грешка
echo "Невалиден URL адрес.";

?>

Изход:

Следният изход ще се появи след стартиране на скрипта от сървъра. Предоставеният URL адрес в скрипта е валиден. И така, изходът показва стойностите на $ match, името на хоста на 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, $ match, 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 () е обяснено в този урок, използвайки множество примери. Използването на различни аргументи на тази функция също е показано тук. Читателите ще могат да използват тази функция правилно в своя скрипт, след като прочетат този урок.

HD Remastered Games за Linux, които никога преди не са имали издание на Linux
Много разработчици и издатели на игри излизат с HD ремастер на стари игри, за да удължат живота на франчайза, моля феновете, които искат съвместимост ...
Как да използвам AutoKey за автоматизиране на Linux игри
AutoKey е програма за автоматизация на настолни компютри за Linux и X11, програмирана в Python 3, GTK и Qt. Използвайки неговата функционалност за скр...
Как да покажа брояч на FPS в игрите на Linux
Linux игрите получиха голям тласък, когато Valve обяви поддръжка на Linux за Steam клиент и техните игри през 2012 г. Оттогава много AAA и независими ...