首页 > 代码库 > PHP正则表达式的一些学习

PHP正则表达式的一些学习

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 匹配包括下划线的任何单词字符



网上大神总结的比较全的语法。


点击打开链接