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 ) ) 

Можем да видим горния резултат, както е даден по-долу, за да го разберем по-добре.

как да инициализирате масив в java
 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 

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

[abc] Съвпада с един знак - a, b или c
[^abc] Съвпада с който и да е един символ освен a, b или c
[a-z] Съвпада с всеки отделен знак в диапазона a-z
[a-zA-Z] Всеки отделен знак в диапазона a-z или A-Z
^ Начало на реда
$ Край на реда
A Начало на низ
С Край на низ
. Всеки отделен знак
с Всеки празен знак
С Всеки знак, който не е интервал
д Всяка цифра
Д Всички нецифрени
In Всяка дума (буква, цифра, долна черта)
IN Всеки несловен знак
 Проверка на границите на думите
/?/ Стартира и завършва регулярния израз
(?) Заснемане на всичко, оградено в скоби ()
(a|b) a или b
а? Нула или едно от a
а* Нула или повече от a
а+ Едно или повече от a
а{3} Точно 3 от а
a{3,} 3 или повече от a
а{3,6} Между 3 и 6 от а
аз Проверка без регистър
м Направете точка съвпадение на новия ред
х Игнорирайте интервала в регулярния израз

Explaining the pattern '[^[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 в края на низа.