preg_match — является функция поиска в PHP. Если функция preg_replace убирает текст, то с помощью preg_match можно находить конкретные данные и сохранять их в переменную для последующего вывода.
Если нужна функция замены в PHP при поиске данных, то она называется preg_replace.
В первом параметре, с помощью регулярных выражений задаются критерии поиска.
Во втором параметре, содержится информация, в которой необходимо найти данные.
Последний параметр, то куда мы будем сохранять найденные данные.
Найдём все что лежит внутри тега H2:
Альтернативный вариант:
Найдем конкретный тег:
Находим строку со словом заголовок, которая находится в таблице HTML, между тегами TR:
Пример 1
Нужно найти ссылку или значение внутри неё.
Это выражение поможет найти данные в ссылке:
При этом:
matches [0] — выведет ссылку с элементом
matches [2] — выведет только элемент внутри ссылки
Вывод содержимого preg_match:
или
Параметр [0] — выводит всё найденное содержимое, а если его поменять на [2] — то часть строки, которая соответствует второй подмаске (круглые скобки).
Пример 2
Имеем такое выражение сложения и равенства:
Найдем его отдельные значения:
Выведем из него значение 300:
Если нам нужна только средняя цифра из примера, мы можем найти выражение иначе:
Этим способом мы найдём:
Если нужно оставить только цифру 200, это можно сделать с помощью функции preg_replace.
Пример 3
Найти адрес ссылки внутри изображения:
Ошибки в preg_match
Ошибка такого рода:
Означает, что второй параметр (то в чем мы ищем) должен быть строкой. Это, конечно ни о чем не скажет, если мы не знаем, что подразумевается под строкой (string). Однако, предположим, мы всё же знаем, а поэтому переведём значение из массива в строку:
Теперь при поиске preg_match не будет ругаться и успешно выведет нужные данные.