Функции для регулярных выражений онлайн урок.


Для работы с регулярными выражениями в PHP существует ряд функций. Рассмотрим некоторые из них:

preg_match ( $pattern, $string, [$matches] ) - проверяет строку на соответствие регулярному выражению. Эта функция возвращает 1 в случае соответствия и 0 - если нет. В случае ошибки эта функция вернет false.

Например.



В этом случае мы описали регулярное выражение, используя альтернативу и экранируя символ точки, т.к. этот символ является мета-символом. Заметим, что эта функция требует, чтоб регулярное выражение записывалось вместе с разделителями. В качестве разделителей можно, например, использовать @.

В этой функции можно указать третий аргумент $matches- массив, в который будут записаны найденные подстроки.

preg_match($pattern, $str, $matches);
print_r($matches);


В результате получим:

Array ( [0] => Honda-id-138451.html, [1] => Honda )


В данном случае в этот массив будут записанные все подстроки найденного совпадения, которые соответствуют сгруппированным частям регулярного выражения, а именно 'Honda'.

Заметим, что эта функция найдет лишь одно соответствие регулярному выражению. Для того, чтобы найти все соответствия в строке используется preg_match_all ( $pattern, $string, [$matches] )



preg_replace ( $pattern , $replacement , $string ) - действует аналогично функции str_replace, но поиск подстрок осуществляется по выражению, а не по простой строке. Например

$str = 'Honda-id-138451.html, Mazda-id-999.html';
$pattern = '@[0-9]+@';
echo preg_replace($pattern, 'N', $str);


Результатом будет замена всех последовательностей цифр в строке $str

Honda-id-N.html, Mazda-id-N.html