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

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

Регулярное выражение представляет из себя некий шаблон, который используется для различных действий в зависимости от функции, использующей это регулярное выражение. Для задания шаблона используются специальные символы. Ниже представлена краткая таблица специальных символов и их значений.

Символы Значение
Символы, указывающие расположение искомого элемента в строке.
^ Указывает на то, что символы после знака должны находиться в начале строки.  
$ Символы до знака должны находиться в конце строки.  
Escape последовательности.
\. Шаблону соответствует знак точки в строке.  
\n Символ перевода строки.  
\r Символ возврата каретки.  
\t Символ табуляции.  
\v Символ вертикальной табуляции.  
Задание группы символов.
[ ] Задают группу символов. Соответствует любому символу из перечисленных в группе. Есть возможность задания диапазона символов с помощью знака - (минус, тире).  
^ В группе символов соответствует отрицанию последующих символов, то есть указывает символы, не соответствующие шаблону.  
. Соответствует любому символу, кроме перевода строки.  
Количественные показатели
* Символ перед знаком не присутствует либо повторяется любое число раз.  
? Символ перед знаком встречается ноль или один раз.  
+ Предыдующий символ повторяется один или большее число раз.  
Логическое определение.
| Эффект подобен оператору || (OR) в логическом выражении.  
() Логическая группировка выражений.  

Функции работы с регулярными выражениями:Необходимо сказать, что PHP располагает как собственным механизмом работы с регулярными выражениями (POSIX), так и заимствованным у другого серверного языка программирования Perl. Внешне их легко различить по названиям функций: функции первого типа начинаются с символов "ereg", а второго - "preg". Но названия функций не единственное их отличие. Прежде всего они содержат некоторые различия в синтаксисе регулярных выражений. Так, Perl-подобные функии требуют разделители:

$str = "регулярное выражение"; // просто строка

$preg = preg_replace("/р.+е/i", "<i>[вырезано]</i>", $str);

$ereg = eregi_replace("р.+е", "<i>[вырезано]</i>", $str);

echo $preg."<br>".$ereg;

Функции Синтаксис Описание
ereg, eregi, preg_match функция(pattern, string, [regs]) Ищет в строке string соответствия с регулярным выражением pattern, и сохраняет их в массиве regs (если указано).
preg_match_all preg_match_all(pattern, subject, matches, [order]) Осуществляет глобальное сопоставление с шаблоном, результаты заносит в matches.
split, spliti, preg_split функция(pattern, string, [limit]) Разбивает строку в массив посредством регулярного выражения.
preg_grep preg_grep(pattern, input) Возвращает массив из элементов массива input, соответствующих шаблону pattern.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: