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 匹配包括下划线的任何单词字符
网上大神总结的比较全的语法。
点击打开链接