^
控制開頭
$
控制結尾
\
轉義序列
\n
新行
\r
回車
\t
製表符
[a-z]
//匹配所有的小寫字母
[a-z]
//匹配所有的大寫字母
[a-za-z]
//匹配所有的字母
[0-9]
//匹配所有的數字
[0-9\.\-]
//匹配所有的數字,句號和減號
[ \f\r\t\n]
//匹配所有的白字元
前面曾經提到^表示字串的開頭,但它還有另外乙個含義。當在一組方括號裡使用^是,它表示」非」或」排除」的意思,常常用來剔除某個字元。還用前面的例子,我們要求第乙個字元不能是數字:^[^0-9][0-9]$
[^a-z]
//除了小寫字母以外的所有字元
[^\\\/\^]
//除了()(/)(^)之外的所有字元
[^\"\']
//除了雙引號(「)和單引號(『)之外的所有字元
php的正規表示式有一些內建的通用字元簇,列表如下:
字元簇 描述
[[:alpha:]] 任何字母
[[:digit:]] 任何數字
[[:alnum:]] 任何字母和數字
[[:space:]] 任何空白字元
[[:upper:]] 任何大寫字母
[[:lower:]] 任何小寫字母
[[:punct:]] 任何標點符號
[[:xdigit:]] 任何16進製制的數字,相當於[0-9a-fa-f]
到現在為止,你已經知道如何去匹配乙個字母或數字,但更多的情況下,可能要匹配乙個單詞或一組數字。乙個單詞有若干個字母組成,一組數字有若干個單數組成。跟在字元或字元簇後面的花括號({})用來確定前面的內容的重複出現的次數。
字元簇 描述
^[a-za-z_]所有
的字母和
下劃線[
[:al
pha:
]]3 所有的3個字母的單詞 ^a字
母aa4
aaaa ^aa
a,aa
a或aa
aaa1
,3aa,aaa或aaaa
這些例子描述了花括號的三種不同的用法。乙個數字 的意思是前面的字元或字元簇只出現x次 ;乙個數字加逗號 的意思是前面的內容出現x或更多的次數 ;兩個數字用逗號分隔的數字 表示 前面的內容至少出現x次,但不超過y次。我們可以把模式擴充套件到更多的單詞或數字:
^[a-za-z0-9_]$
// 所有包含乙個以上的字母、數字或下劃線的字串
^[1-9][0-9]$
// 所有的正整數
^\-[0-9]$
// 所有的整數
^[-]?[0-9]+\.?[0-9]+$
// 所有的浮點數
最後乙個例子不太好理解,是嗎?這麼看吧:以乙個可選的負號 ([-]?) 開頭 (^)、跟著1個或更多的數字([0-9]+)、和乙個小數點(.)再跟上1個或多個數字([0-9]+),並且後面沒有其他任何東西($)。下面你將知道能夠使用的更為簡單的方法。
特殊字元 ? 與 是相等的,它們都代表著: 0個或1個前面的內容 或 前面的內容是可選的 。所以剛才的例子可以簡化為:
^\-?[0-9]
\.?[0-9]
$
特殊字元 * 與 是相等的,它們都代表著 0 個或多個前面的內容 。最後,字元 + 與 是相等的,表示 1 個或多個前面的內容 ,所以上面的4個例子可以寫成:
^[a-za-z0-9_]+$
// 所有包含乙個以上的字母、數字或下劃線的字串
^[1-9][0-9]*$
// 所有的正整數
^\-?[0-9]+$
// 所有的整數
^\-?[0-9]+\.?[0-9]*$
// 所有的浮點數
正規表示式整理
常見正規表示式驗證 d 整數 d 正整數 d 負整數 a za z0 9 數字和字元 不包含標點 u4e00 u9fa5 中文 0 9 0 9 浮點數 a za z0 9 a za z0 9 a za z0 9 郵箱位址 1 9 0 9 0 9 0 9xx 簡單判斷15位或18位身份證 1 9 0 ...
正規表示式整理
d 匹配乙個數字,data w 匹配乙個數字或乙個單詞,word s 匹配乙個空格 包含tab space w 匹配所有非單詞和下劃線 句點.匹配除新行符 r n 序列外的任何單個字元,表示任意個,表示至少乙個,表示0個或乙個,表示n個,表示m n個。句點星號模式 是匹配範圍最廣的模式之一,因為它可...
正規表示式整理
校驗數字的表示式 1.數字 0 9 2.n位的數字 d 3.至少n位的數字 d 4.m n位的數字 d 5.零和非零開頭的數字 0 1 9 0 9 6.非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 7.帶1 2位小數的正數或負數 d d 8.正數 負數 和小數 d d 9.有兩位小數的正實...