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