Содержание

RegExp в PHP

Регулярные выражения в PHP.

PHP поддерживает два стиля синтаксиса регулярных выражений Что такое POSIX и perl. Стиль POSIX встроен в PHP по умолчанию, а стиль Perl доступен после компиляции с библиотекой PCRE библиотека регулярных выражений.

PHP PCRE

В PHP для работы с регулярными выражениями PCRE библиотека регулярных выражений используются несколько функций.

preg_match

php.net: preg_match прекращает свою работу после первого найденного совпадения. Если необходимо найти, либо сосчитать все совпадения, следует воспользоваться функцией preg_match_all.

int preg_match ( string pattern, string subject [, array matches [, int flags]])

preg_match() возвращает FALSE в случае, если во время выполнения возникли какие-либо ошибки. В случае, если дополнительный параметр matches указан, он будет заполнен результатами поиска. Элемент $matches[0] будет содержать часть строки, соответствующую вхождению всего шаблона, $matches[1] – часть строки, соответствующую первой подмаске(то что находится внутри шаблона).

s (PCRE_DOTALL) Если данный модификатор используется, метасимвол "точка" в шаблоне соответствует всем символам, включая перевод строк. Без него - всем, за исключением переводов строк. Этот модификатор эквивалентен записи /s в Perl. Класс символов, построенный на отрицании, например [^a], всегда соответствует переводу строки, независимо от наличия этого модификатора.

preg_match_all

preg_match_all

int preg_match_all(string pattern, string subject, array matches [, int flags [, int offset]])

Функция работает также, как и preg_match, но ищет не только первое вхождение, а все имеющиеся и складывает их в массив matches, который для данной функции (в отличие от preg_match()) является обязательным.

preg_replace

preg_replace - выполняет поиск и замену по регулярному выражению. Выполняет поиск в строке subject совпадений с шаблоном pattern и заменяет их на replacement. В случае, если параметр limit указан, будет произведена замена limit вхождений шаблона.

mixed preg_replace(mixed pattern, mixed replacement, mixed subject [, int limit])

PHP POSIX

В PHP существует две функции для поиска строк при помощи регулярных выражений ereg() и eregi(). Единственное отличие между ними функция eregi() нечувствительна к регистру.

POSIX функции ereg() и eregi() объявлены устаревшими(DEPRECATED). Рекомендуется использовать PCRE библиотека регулярных выражений совместимые функции.