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
"^.{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 匹配包括下划线的任何单词字符
网上大神总结的比较全的语法。