preg_match_all() е вградена функция в PHP, използвана за съпоставяне на конкретния шаблон в низ. Можете да използвате тази функция за извършване на съвпадения на регулярни изрази и извличане на данни от низове. Може да спести време и усилия в случаите, когато трябва да търсите множество срещания на шаблон и се използва широко в приложения за парсиране на текст и извличане на данни на PHP.
Синтаксис
Следва синтаксисът за използване на preg_match_all в PHP:
preg_match_all ( модел , вход , мачове , знамена , изместване )
The preg_match_all приема следните параметри, три са задължителни параметъра и два са незадължителни:
- модел : Това е задължителен параметър; съдържа регулярния израз, който трябва да се търси.
- вход : Вторият също е задължителен параметър, тъй като това е низът, в който се извършва търсенето.
- мачове : Съхранява изхода в масива, съдържащ всички съвпадения.
- знамена : Описва как е структуриран масивът за търсене или съвпадения. Той променя поведението на търсенето на функция. Могат да се използват следните флагове:
- изместване : Това е незадължителният параметър, който определя началната позиция на търсенето.
Флаг | Описание |
---|---|
PREG_PATTERN_ORDER | Полученият масив съдържа всички съвпадения на масив за всеки елемент от регулярния израз. |
PREG_SET_ORDER | Всеки от елементите на масива за съвпадения съдържа съвпадения от всяко групиране за едно от намерените съвпадения на низа. |
PREG_OFFSET_CAPTURE | Той връща съвпаденията със съответните им позиции на отместване в байтовете в низа за предмет. |
PREG_UNMATCHED_AS_NULL | Несъответстващите шаблони ще бъдат отчетени като NULL. |
Пример 1
Разгледайте следния пример за използване на preg_match_all() функция в PHP. В този код ние търсим думата Linux в низа. Тази функция извежда броя на намерените съвпадения с думата Linux :
$низ = „Здравейте Linux ентусиасти, добре дошли в LinuxHint!“ ;
$модел = '/Linux/' ;
$ съвпадения = масив ( ) ;
preg_match_all ( $модел , $низ , $ съвпадения ) ;
print_r ( $ съвпадения [ 0 ] ) ;
?>
Пример 2
В този примерен код ние търсим думата E в низа. Малкото i се използва, за да направи търсенето нечувствително към главни и малки букви. Той ще върне всички срещания на низове на думата E или e:
$низ = „ДОБРЕ ДОШЛИ В САЩ.“ ;
$patternRex = '/E/i' ;
$matchFound = preg_match_all ( $patternRex , $низ , $ съвпадения ) ;
ако ( $matchFound ) {
ехо '<преди>' ;
print_r ( $ съвпадения ) ;
}
?>
Пример 3
Ако моделът, който търсите, не присъства в низа, функцията ще върне false, което показва грешка. За да се справите с това, можете да използвате изрази if-else. Ако шаблонът не е намерен, можете да отпечатате съобщение с помощта на оператора else, за да информирате потребителя, че шаблонът не е намерен.
$низ = „PHP е популярен скриптов език“ ;
$patternRex = '/peE/' ;
$matchFound = preg_match_all ( $patternRex , $низ , $ съвпадения ) ;
ако ( $matchFound ) {
ехо '<преди>' ;
ехо „Намерено съвпадение.“ ;
print_r ( $ съвпадения ) ;
} друго {
ехо „Няма намерено съответствие.“ ;
}
?>
Забележка : The <преди> в горния код се използва за форматиране на изхода.
Долен ред
Регулярните изрази са мощен инструмент за търсене и манипулиране на текст в PHP. The preg_match_all() е вградена PHP функция, която се използва за извършване на съответствие на регулярен израз срещу низ и извличане на всички срещания на шаблона и ако шаблонът не съществува, ще върне false. Разбиране на preg_match_all() ще помогне на потребителите да обработват по-добре текстови данни в PHP.