PHP 正則表達基本文法應用學習。
^ 開始
$ 結束
* 匹配零個或者更多 zero or more
"ab*" 匹配字串a和0個或者更多的b組成的字串("a" "ab" "abb" "abbbbbb" etc)
+ 匹配一個或者更多 one or more
"ab+" 匹配字串a和一個或者更多b組成的字串("ab" "abb" "abbbbbb" etc) 跟*的區別就是後面必須匹配一個b
?匹配零個或一個 zero or one
"ab?" 匹配0個或者一個b ("a", "ab")
.*? 常用來匹配 一大段字串 即不需要規則的字串,就是不用匹配直接想略過去的
例子:
"a?b+$" 匹配一個或者0個a 再加上一個以上的b結尾的字串 ("b" "ab" "bbbbb" "abbbbbbb")
當然也可以在後面的大括弧裡面加上限制字元出現的個數
"ab{2}" 匹配一個a後面必須跟倆個b 即 "abb"
"ab{2,}" 匹配一個a 後面的b必須大於等於2個 "abb" "abbb" "abbbbb"
"ab{2,5}" 匹配一個a 後面的b在2到5之間 "abb" "abbb" "abbbb" "abbbbb"
但是小於兩個b 就不能這樣"ab{,2}" 必須是這樣"ab{0,2}"
於是對於
* 就知道等價於 {0,}
+ 等價於 {1,}
? 等價於 {0,1}
()就是把一些字串連結起來,用來匹配的
"a(bc)*" 就是匹配一個a然後後面跟0個bc或者多個bc "a" "abc" "abcbc" "abcbcbc" etc
| 這個字元相當於 OR操作
"hi|hello" 匹配含有hi 或者 是hello 的字串
"(b|cd)ef" 匹配含有bef 或者cdef的字串
"(a|c)*d" 匹配含有 "d" "ad" "cd" "aab" "ccd" "aaaaaaad" "cccccccd"
.可以代表所有的單一字元
"a.[0-9]" 可以匹配一個a 然後跟一個字串 最後再跟一個數字 "aj9" "a<8" 其中中間的只要是單一的字元都是可以的
"^.{3}$" 以三個單一字元開始和結尾的 "asd" 多餘三個單一的字元就不能被匹配 如"kjl."
[] 該符號包括住的內容只匹配一個單一的字元
"[ab]" 就是只匹配單個的a 或者單個的b 等價於 "a|b"
"[a-z]" 就是匹配26個小寫字母
"^[a-zA-Z]" 匹配以字母開頭的字串
"[0-9]%" 就是匹配含有形如 x% 的字串
",[a-zA-Z0-9]$" 匹配以逗號然後再加一個數字或者字母結尾的字串 ",0" ",a" etc
PHP 一些常用的替代符號
## 或者// 表示分界符 單個的/表示逸出字元
\s表示匹配空白的東西
\d 匹配一個數字字元
\w 匹配包括底線的任何單詞字元
網上大神總結的比較全的文法。
點擊開啟連結