« 86. PHP 的 Regular Expression 函數群整理 | (回到Blog入口) | 88. 什麼是 Cookies? »

87. 如何撰寫 PHP 的 Regular Expression?

jollen 發表於 October 27, 2006 10:10 PM

底下是 PHP 的 regular expression 語法整理,與 MySQL 的 regular expression 並不完全相同,要特別注意一下兩者的小差異。

pattern 用途 e* 符合零個以上的 e+ 符合零個以上的 e? 符合一個或零個的 {n} 用途和 MySQL 的語法一樣 {n,} 用途和 MySQL 的語法一樣 {n, m} 用途和 MySQL 的語法一樣 ^ 用途和 MySQL 的語法一樣 $ 用途和 MySQL 的語法一樣 . 任何字元,但不包含 '\n' | 用途和 MySQL 的語法一樣 [...] 用途和 MySQL 的語法一樣。PHP 也有類別用法,因此 "..." 也可以是類別常數,在後面會提到。

舉幾個例子:

ab*c → ac abbc abbbbbc 皆符合條件 ab+c → abbc abbbc abbbbbbbc 皆符合條件 ab?c → abc ac 皆符合條件

另外,PHP 也有類別的用法,如下表:

類別 符合類別的字元 alpha 0-9 與 a-zA-Z blank Space 與 Tab cntrl ASCII 0~ASCII 32 的控制字元 lower 所有的小寫字母 upper 所有的大寫字母 space Space Tab newline linefeed 與 formfeed characters xdigit 合法的十六進位數字

這裡所介紹的 PHP regular expression 與 regular expression 語法都是屬於 POSIX 1003.2 的標準。事實上,PHP 自 3.0.9 開始,就提供了 Perl 型式的 regular expression 函數,所使用的 regular expression 語法也都是屬於 Perl 的型式。熟悉 Perl 的讀者如果對這個主題有興趣,可以參考 PHP 的 Manual。

--jollen

版權聲明

請參閱頁面底部的 CC 授權條款。此外,Jollen's PHP 專欄禁止引用、修改與轉貼,如果您想與朋友分享的話,我們只允許網站連結(hyperlink)的形式。

發表一個評論

(如果你此前從未在此 Blog 上發表過評論,則你的評論必須在 Blog 主人驗證後才能顯示,請你耐心等候。)

| Top | Jollen's Forum |
Jollen's PHP 專欄採用 Attribution-NonCommercial-NoDerivs 2.5 授權條款
Copyright(c) 2001-2007,2010 www.jollen.org