Фунции Регулярных Выражений (Perl-Совместимые)
LXXXVII. Функции регулярных выражений
(Perl-совместимые)
Синтаксис патэрнов, используемый в этих функциях, очень напоминает Perl. Выражение должно быть заключено в ограничители, слэши (/), например. В качестве ограничителей могут использоваться любые символы, кроме не алфавитных символов, цифр и обратного слэша (\). Если символ ограничителя должен использоваться в самом выражении, он должен мнемонизироваться/escape обратным слэшем. Начиная с PHP 4.0.4, вы можете также использовать парные ограничители в стиле Perl: (), {}, [] и <>.
После конечного ограничителя могут идти различные модификаторы, влияющие на подстановку. См. Модификаторы патэрна.
PHP также поддерживает регулярные выражения, использующие расширенный синтаксис POSIX с функциями POSIX-extended regex.
Требования
Поддержка регулярных выражений предоставляется пакетом библиотеки PCRE, который является открытым ресурсом, автор Philip Hazel, и copyright University of Cambridge, England. Он находится на ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
Установка
Начиная с PHP 4.2.0, эти функции по умолчанию включены. В более старых версиях вы должны конфигурировать и компилировать PHP с опцией --with-pcre-regex[=DIR], чтобы использовать эти функции. Вы можете отменить функции pcre опцией --without-pcre-regex.
Конфигурация
Это расширение не определяет никаких директив конфигурации.
Типы ресурсов
Это расширение не определяет никакие типы ресурсов.
Предопределённые константы
Таблица 1. PREG-константы
константа | описание |
---|---|
PREG_PATTERN_ORDER | Оформляет результат таким образом, что $matches[0] является массивом совпадений всего патэрна, $matches[1] это массив строк, совпавших с первым субпатэрном в кавычках, и так далее. Этот флаг используется только с preg_match_all(). |
PREG_SET_ORDER | Оформляет результат таким образом, что $matches[0] это массив первого набора совпадений, $matches[1] это массив второго набора совпадений, и так далее. Этот флаг используется только с preg_match_all(). |
PREG_OFFSET_CAPTURE | См. описание PREG_SPLIT_OFFSET_CAPTURE. Этот флаг доступен, начиная с PHP 4.3.0. |
PREG_SPLIT_NO_EMPTY | Этот флаг говорит функции preg_split() - возвращать только непустые участки. |
PREG_SPLIT_DELIM_CAPTURE | Этот флаг говорит функции preg_split() - захватывать выражение в скобках также в патэрне ограничителе. Этот флаг доступен, начиная с PHP 4.0.5. |
PREG_SPLIT_OFFSET_CAPTURE | Если этот флаг установлен, для каждого возникающего совпадения будет возвращаться также смещение прибавляемой строки. Обратите внимание, что это изменяет return-значение в массиве, где элемент является массивом, состоящим из совпавшей строки со смещением 0 и смещения его строки в субъекте со смещением 1. Этот флаг доступен, начиная с PHP 4.3.0, и используется только для preg_split(). |
Примеры
Пример 1. Примеры верных патэрнов
|
Пример 2. Примеры неправильных патэрнов
|
- Содержание
- Модификаторы Патэрна - описаны возможные модификаторы в regex-патэрнах
- Синтаксис Патэрна - описан синтаксис PCRE regex
- preg_grep - возвращает вхождения массива, совпадающие с патэрном
- preg_match_all - выполняет глобальный поиск совпадений регулярного выражения
- preg_match - выполняет поиск совпадений регулярного выражения
- preg_quote - закавычивает символы регулярного выражения
- preg_replace_callback - выполняет поиск регулярного выражения и замену с использованием обратного вызова/callback
- preg_replace - выполняет поиск регулярного выражения и замену
- preg_split - делит строку регулярным выражением