logo

Функція PHP preg_match().

Функція preg_match() — це вбудована функція PHP, яка виконує збіг регулярного виразу. Ця функція шукає в рядку шаблон і повертає true, якщо шаблон існує, інакше повертає false.

Як правило, пошук починається з початку рядкового параметра $subject. Необов'язковий параметр $offset використовується для початку пошуку з указаної позиції.

Синтаксис

 int preg_match (string $pattern, string $subject, array $matches, int $flags, int $offset) 

Примітка: $offset є необов’язковим параметром, який визначає позицію, з якої починати пошук.

Параметри

Ця функція приймає п’ять параметрів, які описані нижче:

візерунок

Це параметр рядкового типу. Цей параметр містить шаблон для пошуку як рядок.

тема

Цей параметр містить вхідний рядок, у якому ми шукаємо шаблон.

сірники

Якщо вказано параметр відповідності, він міститиме результати пошуку.

матчі[0] - Він буде містити текст, який збігається з повним шаблоном.

матчі[1] - Він міститиме текст, який збігається з першим захопленим підшаблоном у дужках тощо.

прапори

масив у методах java

Прапори можуть мати наступні прапори, наведені нижче:

    PREG_OFFSET_CAPTURE:Якщо цей прапорець передано в preg_match(), для кожного збігу також повертатиметься зсув додаткового рядка.PREG_UNMATCHED_AS_NULL:Якщо цей прапор передано в preg_match(), невідповідний підшаблон буде повідомлено як NULL, інакше вони будуть повідомлені як порожній рядок.

зсув

За замовчуванням пошук починається з початку параметра $subject. Параметр offset використовується для визначення місця, з якого буде розпочато пошук. Це необов'язковий параметр.

Тип повернення

Функція preg_match() повертає true, якщо шаблон збігається, інакше вона повертає false.

Примітка: якщо ви хочете лише перевірити, чи один рядок міститься в іншому рядку, не використовуйте функцію preg_match(). Використовуйте функцію strpos(), оскільки це буде швидше.

Приклади

 <?php //initialize a variable of string type $site = 'javatpoint'; preg_match('/(java)(t)(point)/', $site, $matches, PREG_OFFSET_CAPTURE); //display the matches result print_r($matches); ?> 

Вихід:

 Array ( [0] =&gt; Array ( [0] =&gt; javatpoint [1] =&gt; 0 ) [1] =&gt; Array ( [0] =&gt; java [1] =&gt; 0 ) [2] =&gt; Array ( [0] =&gt; t [1] =&gt; 4 ) [3] =&gt; Array ( [0] =&gt; point [1] =&gt; 5 ) ) 

Ми можемо побачити наведений вище результат, як наведено нижче, щоб краще зрозуміти його.

реєструвати пам'ять
 Array ( [0] =&gt; Array ( [0] =&gt; javatpoint [1] =&gt; 0 ) [1] =&gt; Array ( [0] =&gt; java [1] =&gt; 0 ) [2] =&gt; Array ( [0] =&gt; t [1] =&gt; 4 ) [3] =&gt; Array ( [0] =&gt; point [1] =&gt; 5 ) ) 

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

 <?php //initialize a variable of string type $website = 'JTP is a best online platform to learn.'; //case insensitive search for word jtp //The 'i' after pattern delimiter indicates case-insensitive search $res = preg_match('/jtp/i', $website, $matches); if ($res) { echo 'Pattern matched in string.</br>&apos;; print_r($matches); } else { echo &apos;Pattern not matched in string.&apos;; } ?&gt; 

Вихід:

 Pattern matched in string. Array ( [0] =&gt; JTP ) 

Приклади: за допомогою межі слова ()

 <?php /* The  indicates the word boundary in the pattern. So, it matches only the distinct word like 'web', and words like 'coreweb' or ' webinar' do not match partially.*/ if (preg_match('/web/i', 'PHP is a web scripting language.')) { echo 'A match was found. </br>&apos;; } else { echo &apos;A match was not found. <br>&apos;; } if (preg_match(&apos;/web/i&apos;, &apos;PHP is a website scripting language.&apos;)) { echo &apos;A match was found.&apos;; } else { echo &apos;A match was not found.&apos;; } ?&gt; 

Вихід:

 A match was found. A match was not found. 

Приклади: отримати доменне ім’я з URL-адреси

 

Вихід:

 Domain name is: javatpoint.com 

Синтаксис регулярного виразу (регулярного виразу).

[abc] Відповідає одному символу - a, b або c
[^abc] Відповідає будь-якому одному символу, крім a, b або c
[a-z] Відповідає будь-якому одному символу в діапазоні a–z
[a-zA-Z] Будь-який окремий символ у діапазоні a-z або A-Z
^ Початок лінії
$ Кінець рядка
А Початок рядка
З Кінець рядка
. Будь-який окремий символ
s Будь-який пробіл
S Будь-який непробільний символ
d Будь-яка цифра
D Будь-який нецифровий
В Будь-який символ слова (буква, цифра, підкреслення)
IN Будь-який несловесний символ
 Перевірка меж слів
/?/ Початок і завершення регулярного виразу
(?) Захопити все, що в дужках ()
(a|b) a або b
а? Нуль або одне з a
a* Нуль або більше a
a+ Один або декілька з a
а{3} Рівно 3 з а
a{3,} 3 або більше з a
a{3,6} Між 3 і 6 а
i Перевірка без урахування регістру
м Зробити крапку збігом нового рядка
х Ігнорувати пробіли в регулярному виразі

Пояснення шаблону '[^[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 у кінці рядка.