Разделители


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

Часто используемыми разделителями являются косые черты (/), знаки решетки (#) и тильды (~). Ниже представлены примеры шаблонов с корректными разделителями.

 /foo bar/ #^[^0-9]$# +php+ %[a-zA-Z0-9_-]% 

Также можно использовать разделитель в виде скобок, где стартовый и завершающий разделители явлются соответственно открывающей и закрывающей скобками. (), {}, [] и <> являются допустимыми парами разделителей.

 (this [is] a (pattern)) {this [is] a (pattern)} [this [is] a (pattern)] <this [is] a (pattern)> 
Разделители в виде скобок не нужно экранировать, если они также используются как метасимволы в шаблоне, но как и с другими разделителями их нужно экранировать, если они используются непосредственно как символы.

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

 /http:\/\// #http://# 
Функция preg_quote() может быть использована для экранирования строки, используемой в шаблоне, а ее необязательный второй параметр позволяет указать используемый разделитель.

После закрывающего разделителями можно использовать модификаторы шаблонов. Ниже следуюет пример регистро-независимого поиска:

 #[a-z]#i