分隔符

當使用 PCRE 函數(shù)的時候,模式需要由分隔符閉合包裹。 分隔符可以是任意非字母數(shù)字、非反斜線、非空白字符。 靜默忽略合法分隔符之前的空白字符。

經(jīng)常使用的分隔符是正斜線(/)、hash符號(#) 以及取反符號(~)。下面的例子都是使用合法分隔符的模式。

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

It is also possible to use bracket style delimiters where the opening and closing brackets are the starting and ending delimiter, respectively. (), {}, [] and <> are all valid bracket style delimiter pairs.

(this [is] a (pattern))
{this [is] a (pattern)}
[this [is] a (pattern)]
<this [is] a (pattern)>
Bracket style delimiters do not need to be escaped when they are used as meta characters within the pattern, but as with other delimiters they must be escaped when they are used as literal characters.

如果需要在正則模式內(nèi)匹配分隔符,必須使用反斜線轉(zhuǎn)義。如果分隔符經(jīng)常在 正則模式內(nèi)出現(xiàn), 最好使用其他分隔符以便提高可讀性。

/http:\/\//
#http://#
需要將一個字符串放入模式中使用時,可以用 preg_quote() 函數(shù)對其進行 轉(zhuǎn)義,它的第二個參數(shù)(可選)可以用于指定需要被轉(zhuǎn)義的分隔符。

可以在結(jié)束分隔符后面增加模式修飾符。 下面的例子是一個大小寫不敏感的匹配:

#[a-z]#i