在以前的部落格裡寫過一次,當時寫的不是很完整,這裡再重新寫一次,希望寫的完整一點qaq
preg_match()
:執行乙個正規表示式匹配
preg_match_all()
:執行全域性正規表示式匹配(會把字串查詢完)
preg_filter()
:執行乙個正規表示式搜尋和替換
preg_replace()
:執行乙個正規表示式搜尋和替換,與fileter不同在無論是否發生替換,都會保留值
preg_grep()
:返回匹配模式的陣列條目
定界符:就是定乙個邊界,邊界已內的就是正規表示式
php的正規表示式定界符的規定如下:
不能用a-z a-z 0-9 \ 其他的都可以用。必須成對出現,有開始就有結束。
例如:/ 正則 /
# 正則 #
可見原子 : 輸出之後肉眼可見的字元
不可見原子 : 輸出之後肉眼看不見的字元
常用的元字元:
集合
\d:匹配乙個數字0-9
\d:匹配0-9以外的所有字元
\s : 匹配任意乙個不可見原子
\s : 匹配任意乙個可見原子
\w : 匹配任意乙個數字, 字母和下劃線
\w : 匹配除數字, 字母和下劃線以外的任意乙個字元
. : 匹配除換行符以外的任意乙個字元
篩選方式
| : 匹配兩個或多個分支選擇
[ ] : 匹配裡面任意乙個原子
[^ ] : 匹配除中括號以外的任意乙個原子
量詞
*: 0次, 1次或多次
? : 0次或1次
+ : 1次或多次
: 匹配其前面的乙個原子恰好n次
: 匹配其前面的乙個原子至少n次
: 匹配其前面的乙個原子至少n次, 最多m次
邊界控制
^ : 以某個原子為開始
$ : 以某個原子為結尾
模式單元
() : 整體為乙個原子
i 完全不區分大小寫
s 將字串視為單行,換行符作為普通字元
m 可以採用多行識別,遇到換行也承認匹配規則
x 忽略掉規則模式中的空白字元
a 強制從頭開始匹配
d 模式中的$僅匹配目標字串的結尾
u 禁止貪婪匹配,只跟蹤到最近的乙個匹配符並結束
shell 正規表示式詳細整理
匹配前面的子表示式零次或一次。等價於 n 是乙個非負整數,匹配確定的n 次。n 是乙個非負整數,至少匹配n 次。m 和 n 均為非負整數,其中n m。最少匹配 n 次且最多匹配 m 次。在逗號和兩個數之間不能有空格。當該字元緊跟在任何乙個其他限制符 後面時,匹配模式是非貪婪的。非貪婪模式盡可能少的匹...
PHP 常用正規表示式整理
驗證賬號,字母開頭,允許 5 16 位元組,允許字母數字下劃線 a za z a za z0 9 驗證賬號,不能為空,不能有空格,只能是英文本母 s a z a z 驗證賬號,不能有空格,不能非數字 d 驗證使用者密碼,以字母開頭,長度在 6 18 之間 a za z w 驗證是否含有 等字元 x2...
PHP 常用正規表示式整理
驗證賬號,字母開頭,允許 5 16 位元組,允許字母數字下劃線 a za z a za z0 9 驗證賬號,不能為空,不能有空格,只能是英文本母 s a z a z 驗證賬號,不能有空格,不能非數字 d 驗證使用者密碼,以字母開頭,長度在 6 18 之間 a za z w 驗證是否含有 等字元 x2...