一、PHP正規表達式函數解析

preg_match();preg_match_all();表單驗證等
//email位址的合法性-preg_match(),比對結果可以看作是bool值
preg_replace();非法詞的過濾
//f**k
二、正規表達式基本文法
中午比對最好轉成unicode:Unicode轉換工具
注意:[^是必須在一起的,否則如下:^也被當成一個原子去比對。
分枝是指制定幾個規則,如果滿足任意一種規則,則都當作比對成功。具體來說就是用 | 符号把各種規則分開,且條件從左至右比對。
提示
由于分枝規定,隻要比對成功,就不再對後面的條件加以比對,是以如果你想比對有包含關系的内容,請注意規則的順序。 下面是一個使用分枝的例子。
美國的郵政編碼的規則是 5 個數字或者 5 個數字連上 4 個數字,如 12345 或者 54321-1234 ,如果要比對所有的郵編,則正确的正規表達式為:
\d{5}-\d{4}|\d{5}
//錯誤寫法
\d{5}|\d{5}-\d{4}
下面的錯誤寫法,隻能比對到 5 位數字及 9 位數字的前 5 位數字的情況,而不能比對 9 位數字的郵編。
.等價于[^\n]
{n} 表示比對其前面的原子恰好筆記出現n次的 如:5{3} 相當于 555 {n,}
表示比對其前面的原子最少出現n次的如:[a-zA-Z]{5,}至少連續出現5次的字母如wertt;
{n,m}表示其前面的原子最少出現5次,最多出現m次 如:w{5,9}
* 比對0次, 1次或者多次其之前的原子 即{0,} 如w*
+ 比對1次或多次其之前的原子 {1,} d+
?比對0次或1次其之前的原子 {0,1} _?u
第三、修正模式
取多種可能結果中最短的那個,預設是貪婪模式,既多種可能性中最長的那個
x:忽略空格和tab制表符空白格
四、實戰-常見正規表達式
非空比對:.+
浮點數:\d+\.\d{2}$
手機号:^1(3|5)d{9}$
郵箱:^\w+(\.\w+)*@\w+(\.\w+)+$
URl:^(https?:\/\/)?(\w+\.)+[a-zA-Z]+$
僅比對3~15個漢字和大小寫字母:^([\x{4e00}-\x{9fa5}]|[a-zA-Z]){3,15}$/u
(/u表示按unicode(utf-8)比對(主要針對多位元組比如漢字),/U才是懶惰比對哦)
正規表達式的/要轉義,不轉義是比對不到的
模式單元(3|5|7|8)等同于[3578]
注意:(3|5) 等同于[35]而不是[3|5]哦!!