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

Use Preg_match Function Php



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

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







Синтаксис:

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

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



Пример 1: Съпоставете модела по регистър и регистър

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



Тук три шаблона се използват за прилагане в три функции preg_match (). Първият модел, '/Като/', се използва за съвпадение на низа по чувствителен към регистър начин. Вторият модел, '/като/' , се използва за съвпадение на низ по чувствителен към регистър начин. Третият модел, 'Като мен' , се използва за съвпадение на низ по нечувствителен към регистъра начин. search_pattern () функцията е дефинирана в скрипта да използва функцията preg_match () за съвпадение и отпечатва съобщението въз основа на върнатата стойност на тази функция.







// Определете текста

$ текст = „Харесвам PHP. Аз също харесвам JavaScript. ';

// Определете три типа модел

$ модел1 = '/Като/';

$ модел2 = '/като/';

$ модел3 = '/Като мен';

// Определете функция за търсене на шаблона в текста

функцияшаблон за търсене($ модел, $ низ)

{

ако( preg_match ($ модел, $ низ))

изхвърлен 'Резултат от търсенето: Съответствието е намерено за модела -$ модел
'
;

иначе

изхвърлен 'Резултат от търсенето: Съответствието не е намерено за шаблона -$ модел
'
;

}

// Отпечатайте оригиналния текст

изхвърлен „Оригиналният текст е: $ текст
'
;

// Извикваме функцията три пъти за три модела

шаблон за търсене($ модел1, $ текст);

шаблон за търсене($ модел2, $ текст);

шаблон за търсене($ модел3, $ текст);

?>

Изход :

Следният изход ще се появи след стартиране на скрипта от сървъра. Първият ред показва текста, където са търсени шаблоните. Вторият ред показва изхода на първия шаблон. Третият ред показва изхода на втория модел. Четвъртият ред показва изхода на третия модел.



Пример 2: Потвърдете URL адреса

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

В променливата $ url е зададена стойност за URL за тестване. Низът „@^(?: Https: //)? ([^/]+) @I“ се използва като модел във функцията preg_match (), за да се провери дали URL адресът е валиден или не. Ако е валидно, тогава името на хоста и името на домейна ще бъдат отпечатани, в противен случай съобщението за грешка ще бъде отпечатано.



// Определете URL адреса

$ url = 'https://www.linuxhint.com';

// Определете модела за валидиране на URL адреса

$ модел ='@^(?: https: //)? ([^/]+) @i';

// Проверете дали URL адресът е валиден или не

ако( preg_match ($ модел, $ url, $ съвпадения1))

{

// Отпечатайте съобщението за успех

изхвърлен „URL адресът е валиден.
'
;

// Отпечатайте масива, който съдържа съответстващите стойности

изхвърлен 'Стойностите на масива са:';

print_r ($ съвпадения1);

// Извличане и отпечатване на стойността на хоста

$ домакин = $ съвпадения1[1];

изхвърлен '
Името на хоста е:$ домакин'
;

// Търсене в името на домейна от стойността на хоста

preg_match ('/[^.-lex.europa.eu+.[^.íritu+$/', $ домакин, $ съвпадения2);

изхвърлен '
Името на домейна е:{$ съвпадения2 [0]}'
;

}

иначе

{

// Отпечатайте съобщението за грешка

изхвърлен 'Невалиден адрес.';

}

?>

Изход :

Следният изход ще се появи след стартиране на скрипта от сървъра. Предоставеният 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 ().



// Определете текстовата стойност

$ текст = 'Бангладеш';

// Определете три типа модели

$ модел1 = ' / (bangla) (desh) / i';

$ модел2 = ' / (bangla) (радвам се) * (desh) / i';

$ модел3 = '/радвам се/';


// Използване на флага PREG_OFFSET_CAPTURE

preg_match ($ модел1, $ текст, $ мачове,PREG_OFFSET_CAPTURE);

изхвърлен '
';  

print_r ($matches);

echo '

'
;

// Използване на флага PREG_UNMATCHED_AS_NULL

preg_match ($ модел2, $ текст, $ мачове,PREG_UNMATCHED_AS_NULL);

изхвърлен '
';  

print_r ($matches);

echo '

'
;

// Използване на флаг PREG_OFFSET_CAPTURE и стойност на изместване

preg_match ($ модел3, $ текст, $ мачове,PREG_OFFSET_CAPTURE, 3);

изхвърлен '
';  

print_r ($matches);

echo '
'
;

?>

Изход :

Следният изход ще се появи след стартиране на скрипта от сървъра.

Заключение

Използването на функцията preg_match () е обяснено в този урок с помощта на множество примери. Тук са показани и употребите на различни аргументи на тази функция. Читателите ще могат да използват правилно тази функция в скрипта си, след като прочетат този урок.