Функция preg_match
- Подробности
- Категория: PHP
- Просмотров: 250
Чтобы не писать миллион правил для отлова или сравнения по определенному шаблону...
используют регулярные выражения в PHP, и с ними очень удобно бывает использовать функцию preg_match, хотя она понимает не только регулярки и может работать с обычными словами.
Как работает
preg_match( string $pattern, string $subject, array &$matches = null, int $flags = 0, int $offset = 0 ): int|false
!! сразу скажу, что функция возвращает 0 или 1 / если совпадения есть, то 1, если нет - 0
$pattern - в виде строки ($string) ищется в объекте $subject, который как мы видим тоже должен быть строкой.
Эти 2 обязательных параметра, для функции, но есть и дополнительные:
3) можно записать результат в массив $matches и затем с этими результатами работать
-- все, что далее это доп параметры, которые редко используются:
4) $flags - флаги
PREG_OFFSET_CAPTURE - разбивает массив на доп массив с отдельными членами и показывает какой отступ в байтах
preg_match('/(foo)(bar)(baz)/', 'foobarbaz', $matches, PREG_OFFSET_CAPTURE); print_r($matches);
PREG_UNMATCHED_AS_NULL - заменяет несовпавшие маски на NULL
то есть флаги начинающим программистам могут не пригодится.
5) $offset - укажет отступ в байтах для началах поиска, по-умолчанию ноль - то есть искать с начала.
Пример:
if (preg_match("/php/i", "PHP is the best.")) {
echo "Вхождение найдено.";
} else {
echo "Вхождение не найдено.";
}
i - в регулярках - регистронезависимость