Регулярное выражение представляет собой шаблон, на основе которого выполняется поиск в исходной строке подстрок, соответствующий данному шаблону. Регулярные выражения являются мощным механизмом для «разборки» строк (например, для анализа содержимого HTML-страниц), поэтому их активное использование при разработке web-приложений может существенно повысить эффективность работы программиста.
Далее будем рассматривать PERL-совместимые регулярные выражения, которые заимствованы в язык PHP из языка PERL (изначально синтаксис PHP создавался под влиянием PERL, поэтому такое заимствование выглядит вполне естественным). Подробное рассмотрение регулярных выражений выходит за рамки данного курса (в силу значительного объема и сложности материала). Далее будем рассматривать только:
· Способы применения регулярных выражений в PERL;
· Основные сведения о регулярных выражениях, позволяющие начать использовать регулярные выражения в своих программах.
Для разбора регулярного выражения в PHP используются функции preg_match и preg_match_all.
Наименование функции
Назначение функции и возвращаемое значение
Параметры
preg_match
Поиск в исходной строке подстрок, соответствующих шаблону. Функция возвращает 1, если найдена хотя бы одна подстрока, соответствующая шаблону, в противном случае возвращается 0.
· Шаблон для поиска подстрок;
· Исходная строка, в которой выполняется поиск;
· Необязательный параметр, указывающий одномерный массив, куда будут помещены результаты поиска. Если поиск успешен, то массив будет содержать единственный элемент с первой подстрокой, соответствующей шаблону.
preg_match_all
Поиск в исходной строке подстрок, соответствующих шаблону. Функция возвращает количество подстрок, соответствующих шаблону.
· Шаблон для поиска подстрок;
· Исходная строка, в которой выполняется поиск;
· Необязательный параметр, указывающий двумерный массив, куда будут помещены результаты поиска. Если поиск успешен, то первый элемент результирующего массива будет содержать массив подстрок, соответствующих шаблону. Результирующй массив может содержать и более одного элемента, если шаблон содержит подшаблоны (см. далее).
Примеры использования функций разбора регулярных выражений