Основы PHP
  Что такое PHP?
  Возможности PHP
  Преимущества PHP
  История развития
  Что нового в PHP5?
  «Движок» PHP
  Переход на PHP 5.3
New Переход на PHP 5.6
  Введение в PHP
  Изучение PHP
  Основы CGI
  Синтаксис PHP
  Типы данных PHP
  Переменные в PHP
  Константы PHP
  Выражения PHP
  Операторы PHP
  Конструкции PHP
  Ссылки в PHP
  PHP и ООП
  Безопасность
  Функции PHP
  Функции по категориям
  Функции по алфавиту
  Стандартные функции
  Пользовательские
  PHP и HTTP
  Работа с формами
  PHP и Upload
  PHP и Cookies
  PHP и базы данных
  PHP и MySQL
  Документация MySQL
  Учебники
  Учебники по PHP
  Учебники по MySQL
  Другие учебники
  Уроки PHP
  Введение
  Самые основы
  Управление
  Функции
  Документация
  Математика
  Файлы
  Основы SQL
  Дата и время
  CURL
  Изображения
  Стили
  Безопасность
  Установка
  Проектирование БД
  Регулярные выражения
  Подготовка к работе
  Быстрый старт
  Установка PHP
  Установка MySQL
  Конфигурация PHP
  Download / Скачать
  Скачать Apache
  Скачать PHP
  Скачать PECL
  Скачать PEAR
  Скачать MySQL
  Редакторы PHP
  Полезные утилиты
  Документация
  PHP скрипты
  Скачать скрипты
  Инструменты
  PHP в примерах
  Новости портала
 Главная   »  Функции PHP
 
 

Функции для работы с регулярными выражениями (Perl-совместимые)

Введение

Синтакcис шаблонов, используемых в функциях этого раздела, во многом похож на синтаксис, используемый в Perl. Выражение должно быть заключено в ограничители, например, прямые слеши '/'. Ограничителем могут выступать произвольные символы, кроме буквенно-цифровых и обратного слеша '\'. Если ограничительный символ встречается в шаблоне, его необходимо экранировать. Начиная с PHP 4.0.4 в качестве ограничителя доступны комбинации, используемые в Perl: (), {}, [] и <>.

После закрывающего ограничителя можно указывать различные модификаторы, влияющие на работу регулярных выражений.

PHP также поддерживает POSIX-совместимые регулярные выражения, используя соответствующий модуль.

Требования

Поддержка Perl-совместимых регулярных выражений реализована в соответствующей PCRE библиотеке, которая распространяется с открытым исходным кодом. Автором библиотеки является Philip Hazel, авторские права принадлежат кембриджскому университету, Англия. Исходный код доступен по ссылке ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/.

Внимание

Также вы должны учитывать некоторые ограничения PCRE. Ознакомьтесь с http://www.pcre.org/pcre.txt для получения более полной информации.

Установка

Начиная с PHP 4.2.0, Perl-совместисмые регулярные выражения (PCRE) доступны по умолчанию. Вы можете отключить их при помощи --without-pcre-regex. В случае, если вы хотите использовать библиотеку, отличную от идущей в стандартной поставке РНР, используйте опцию --with-pcre-regex=DIR для указания директории, содержащей необходимые файлы. Если у вас версия PHP менее, чем 4.2.0, вам необходимо сконфигурировать и пересобрать PHP с опцией --with-pcre-regex[=DIR], чтобы включить поддержку PCRE-функций.

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

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

Таблица 1. PREG константы

константаописание
PREG_PATTERN_ORDER Меняет порядок элементов в результирующем массиве так, чтобы элемент $matches[0] содержал полные вхождения шаблона, элемент $matches[1] - все вхождения первой взятой в круглые скобки подмаски, и так далее. Только reg_match_all() реагирует на данный модификатор; остальными функциями он игнорируется.
PREG_SET_ORDER Меняет порядок элементов в результирующем массиве так, чтобы элемент $matches[0] содержал первый набор вхождений (полное вхождение, вхождение первой подмаски, заключенной в круглые скобки...), аналогично элемент $matches[1] - второй набор вхождений, и так далее. Только reg_match_all() реагирует на данный модификатор; остальными функциями он игнорируется.
PREG_OFFSET_CAPTURE Смотрите описание флага PREG_SPLIT_OFFSET_CAPTURE. Данный флаг доступен в PHP 4.3.0 и выше.
PREG_SPLIT_NO_EMPTY В случае, если этот флаг указан, функция preg_split() вернет только непустые подстроки.
PREG_SPLIT_DELIM_CAPTURE В случае, если этот флаг указан, выражение, заключенное в круглые скобки в разделяющем шаблоне, также извлекается из заданной строки и возвращается функцией. Этот флаг был добавлен в PHP 4.0.5.
PREG_SPLIT_OFFSET_CAPTURE В случае, если этот флаг указан, для каждой найденной подстроки будет указана ее позиция в исходной строке. Необходимо помнить, что этот флаг меняет формат возвращаемых данных: каждое вхождение возвращается в виде массива, в нулевом элементе которого содержится найденная подстрока, а в первом - смещение. Этот флаг доступен в PHP 4.3.0 и выше и используется только в функции preg_split().

Примеры


Пример 1. Примеры правильных шаблонов

  • /<\/\w+>/

  • |(\d{3})-\d+|Sm

  • /^(?i)php[34]/

  • {^\s+(\s+)?$}


Пример 2. Примеры неправильных шаблонов

  • /href='(.*)' - пропущен закрывающий ограничитель

  • /\w+\s*\w+/J - неизвестный модификатор 'J'

  • 1-\d3-\d3-\d4| - пропущен открывающий ограничитель

Содержание

preg_grep --  Возвращает массив вхождений, которые соответствуют шаблону
preg_match_all -- Выполняет глобальный поиск шаблона в строке
preg_match -- Выполняет проверку на соответствие регулярному выражению
preg_quote -- Экранирует символы в регулярных выражениях
preg_replace_callback -- Выполняет поиск по регулярному выражению и замену с использованием функции обратного вызова
preg_replace -- Выполняет поиск и замену по регулярному выражению
preg_split -- Разбивает строку по регулярному выражению
 
 
 Функции по алфавиту 
   Содержание   
 Функции по категориям 
Есть еще вопросы или что-то непонятно - добро пожаловать на наш  форум портала PHP.SU 
 

 
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS