2010-12-04 109 views
2

我一直在學習PHP一段時間,我想澄清一下。初級PHP幫助需要

我所見過的preg_match函數調用不同的分界符號,如:

preg_match('/.../') 

preg_match('#...#') 

今天我也看到%被使用。

我的問題是兩個部分:

有什麼可以使用的所有字符?

有沒有標準?

+1

這只是一個品味的問題。 – 2010-12-04 07:52:12

回答

4

不限

  • 非字母數字
  • 非空白和
  • 非反斜槓ASCII字符

可以用作分隔符。

此外,如果你使用開幕標點符號的開始分隔符:

({ [ < 

那麼其對應的關閉標點符號必須作爲結束分隔符:

) } ] > 

最常見分隔符是/
但是有時如果/是正則表達式的一部分,建議使用不同的分隔符。

例子:

// check if a string is number/number format: 
if(preg_match(/^\d+\/\d+$/)) { 
    // match 
} 

由於正則表達式中包含的分隔符,你必須逃脫在正則表達式中的分隔符。

爲了避免逃逸,最好是選擇不同的分隔符,一個是不存在的正則表達式,這樣,你的正則表達式將是更短和更清潔的

if(preg_match(#^\d+/\d+$#)) 
+0

只需添加:如果您未使用開啓/關閉標點符號,則表達式中的第一個字符必須與最後一個字符相同,否則會出現錯誤。 – 2010-12-04 07:00:43