什麼是字元簇?
在INTERNET的程式中,正規表示式通常用來驗證使用者的輸入。當使用者提交一個FORM以後,要判斷輸入的電話號碼、地址、EMAIL地址、信用卡號碼等是否有效,用普通的基於字面的字元是不夠的。
所以要用一種更自由的描述我們要的模式的辦法,它就是字元簇。要建立一個表示所有元音字元的字元簇,就把所有的元音字元放在一個方括號裡:
[AaEeIiOoUu]
這個模式與任何元音字元相符,但只能表示一個字元。用連字號可以表示一個字元的範圍,如:
[a-z] //配對所有的小寫字母
[A-Z] //符合所有的大寫字母
# [a-zA-Z] //符合所有的字母
[0-9] //配對所有的數字
[0-9\.\-] //符合所有的數字,句號和減號
[ \f\r\t\n] //匹配所有的白字符
同樣的,這些也只表示一個字符,這是一個非常重要的。如果要匹配一個由一個小寫字母和一位數字組成的字串,例如」z2″、」t6″或」g7″,但不是」ab2″、」r2d3″ 或」b52″的話,用這個模式:
^[a-z][0-9]$
儘管[a-z]代表26個字母的範圍,但在這裡它只能與第一個字元是小寫字母的字串匹配。
前面曾經提到^表示字串的開頭,但它還有另一個意義。當在一組方括號裡使用^是,它表示「非」或「排除」的意思,常常用來剔除某個字元。也用前面的例子,我們要求第一個字元不能是數字:
^[^0-9][0-9]$
這個模式與」&5″、」g7 ″及”-2″是匹配的,但與”12″、”66″是不匹配的。以下是幾個排除特定字元的例子:
[^a-z] //除了小寫字母以外的所有字元
[^\\\/\^] //除了(\) (/)(^)以外的所有字元
[^\”\'] //除了雙引號(”)和單引號(')之外的所有字元
特殊字元”.” (點,句號)在正規表達式中用來表示除了「新行」之外的所有字元。所以模式」^.5$」與任何兩個字元的、以數字5結尾和以其他非「新行」字元開頭的字串相符。模式”.”可以匹配任何字串,除了空串和只包括一個“新行”的字串。
PHP的正規表達式有一些內建的通用字元簇,列表如下:
字元簇意義
#[[:alpha:]]任何字母
[[:digit:]] 任何數字
[[:alnum:]] 任何字母和數字
[[:space:]] 任何白字符
[[:upper:]] 任何大寫字母
[[:lower:]] 任何小寫字母
[[:punct:]] 任何標點符號
[[:xdigit:]] 任何16進位的數字,相當於[0-9a-fA-F]
以上是正規表示式字元簇(一)的詳細內容。更多資訊請關注PHP中文網其他相關文章!