Функция PHP preg_match_all()
❮ Справочник по регулярному выражению PHP
Пример
Найдите все вхождения «ain» в строку:
<?php
$str = "The rain in SPAIN falls mainly on the plains.";
$pattern =
"/ain/i";
if(preg_match_all($pattern, $str, $matches)) {
print_r($matches);
}
?>
Определение и использование
Функция preg_match_all()
возвращает количество совпадений шаблона, найденных в строке, и заполняет переменную найденными совпадениями.
Синтаксис
preg_match_all(pattern, input, matches, flags, offset)
Значения параметров
Parameter | Description |
---|---|
pattern | Required. Contains a regular expression indicating what to search for |
input | Required. The string in which the search will be performed |
matches | Optional. The variable used in this parameter will be populated with an array containing all of the matches that were found |
flags | Optional. A set of options that change how the matches array is structured. One of the following structures may be selected:
|
offset | Optional. Defaults to 0. Indicates how far into the string to begin searching. The preg_match() function will not find matches that occur before the position given in this parameter |
Технические детали
Возвращаемое значение: | Возвращает количество найденных совпадений или false, если произошла ошибка |
---|---|
Версия PHP: | 4+ |
Список изменений: | PHP 7.2 — Добавлен флаг PREG_UNMATCHED_AS_NULL PHP 5.4 — Параметр match стал необязательным PHP 5.3.6 — Функция возвращает false, если смещение больше, чем длина входных данных PHP 5.2.2 — Именованные подшаблоны могут использовать (?'name' ) и (? <имя>) синтаксис в дополнение к предыдущему (?P<имя>) |
Дополнительные примеры
Пример
Используйте PREG_PATTERN_ORDER, чтобы задать структуру массива совпадений . В этом примере каждый элемент в массиве совпадений содержит все совпадения для одной из групп регулярного выражения.
<?php
$str = "abc ABC";
$pattern = "/((a)b)(c)/i";
if(preg_match_all($pattern,
$str, $matches, PREG_PATTERN_ORDER)) {
print_r($matches);
}
?>
❮ Справочник по регулярному выражению PHP