В руководстве PHP PCRE, http://us.php.net/manual/en/pcre.examples.php, это дает 4 примера допустимых шаблонов:
/<\/\w+>/
|(\d{3})-\d+|Sm
/^(?i)php[34]/
{^\s+(\s+)?$}
Кажется этим /
, |
или пара фигурных скобок может использовать в качестве разделителей, так есть ли какое-либо различие между ними?
Никакой разницы, за исключением того, что закрывающий разделитель не может появляться без экранирования.
Это полезно, когда стандартный разделитель используется часто, например вместо
preg_match("/^http:\\/\\/.+/", $str);
вы можете написать
preg_match("[^http://.+]", $str);
, чтобы избежать необходимости экранировать /
.
Фактически вы можете использовать любой не буквенно-цифровой разделитель (исключая пробелы и обратную косую черту)
"%^[a-z]%"
работает так же, как
"*^[a-z]*"
, а также
"!^[a-z]!"