Учебник по основам PHP. PHPBeginner


         

Синтаксис регулярных выражений


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

/шаблон/модификаторы

Ограничителями могут служить: прямые слеши «/», а также любые не алфавитно-цифровые символы, кроме обратного слеша «\». Часто в качестве ограничителей служат символы: \, %, $. Завершающий ограничитель должен быть представлен тем же символом, что и начинающий; ограничитель должен быть первым символом регулярного выражения. Если необходимо использовать символ, выбранный ограничителем в шаблоне, ему должен предшествовать обратный слеш «\» (например: «/\d{l,2}V\d{2}/»).

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

Sbegin = "OOps"; Spattern = "/Sbegnn/".

Теперь шаблон Spattern будет искать последовательность Oops в любом месте текста вместо ожидаемого фрагмента begin в начале текста. В данном случае строку следует записывать как Spattern = "ASbegin/"; либо как: Spattern = '/$begin/':. Подобных примеров можно привести множество, поэтому не брезгуйте заглянуть в раздел «Типы: Строки», чтобы вспомнить, как РНР интерпретирует строки, и, в частности, как следует использовать слеши.

Синтаксис шаблона

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

Метасимвол Значение
\ подстановка;
. любой символ: [*\n] или [\0-\xFF];
I альтернатива;
0 ограничители подшаблона;
|] ограничители класса символов;
{} числители повторения «от X до У раз»;
? числитель «1 или 0 раз»; или мишшизатор числителя; или расширение значения метасимвола «(»;
* числитель «0 или более pa:i>>;
+ числитель «1 или более раз»;
< претензия «в начале строки»;
$ претензия «в конце строки».
<

Содержание  Назад  Вперед