当使用 PCRE 函数的时候,模式需要由分隔符闭合包裹。分隔符可以使任意非字母数字、非反斜线、非空白字符。
经常使用的分隔符是正斜线(/)、hash符号(#) 以及取反符号(~)。下面的例子都是使用合法分隔符的模式。
/foo bar/ #^[^0-9]$# +php+ %[a-zA-Z0-9_-]%
如果分隔符需要在模式内进行匹配,它必须使用反斜线进行转义。如果分隔符经常在 模式内出现, 一个更好的选择就是是用其他分隔符来提高可读性。
/http:\/\// #http://#
除了上面提到的分隔符,也可以使用括号样式的分隔符,左括号和右括号分别作为开始和结束 分隔符。
{this is a pattern}
可以在结束分隔符后面增加模式修饰符。 下面的例子是一个大小写不敏感的匹配:
#[a-z]#i
adelbenzarti at yahoo dot fr (2012-03-02 23:09:39)
When you use meta-characters in the regular expression, avoid using them as delimiters. In preference, do not use the meta-characters as delimiters at all.
Besides, you must not forget to escape the delimiter if it exists in the user text. The function preg_quote permits to escape the delimiter if it exists in the user text.
<?php
$usertext=preg_quote($usertext,$delimiter);
?>
Anonymous (2011-10-31 14:38:20)
other possible delimiters include @,!, <>
using symbols (such as | ) that have meaning inside a regex as delimiters is probably going to be counterproductive.