ThinkPHP第六天(正则表达式)

1、正则表达式:原子

  ①a-z,A-Z,0-9,_ 

  ②用(abc)圆括号括起来的单元符号,表示括号里面的作为一个完整的组合,必须完成匹配,不被拆分来

  ③用方括号括起来[abc][^abc]称之为原子表,任何符合括号的内容都可以匹配,^符号,表示不包含原子表中的内容进行匹配。

  ④转义字符:d表示包含所有数字[0-9],D除所有数字即[^0-9],w表示所有常见英文字符[a-zA-Z_0-9],W表示除所有英文字符[^a-zA-Z_0-9],s包含空白区域如空格、回车、分页

2、preg_match(正则表达式,字符串,存放结果数组),该函数会将符合正则表达式的结果放入数组中(一维数组),只找一个符合结果。

 preg_match_all()这个函数是将字符串所有符合结果放入数组(二维数组)

3、正则表达式一般以/表达式/形式开始和结尾,如/abc/表示匹配含有abc

4、*表示其前面某个元素的0或多次出现,如go*gle 则可以匹配的ggle(0次)或goooooogle(多次)

5、+表示其前面的某个元素出现1次或多次

6、?表示其前面某个元素出现0次或1次

7、.表示回车以外的任意字符串,如g.+gle与之匹配的 可以是google 或者glskesgle

8、|表示或者的意思 /baidu|google/,匹配字符串中是否含有baidu或者google

9、^开始字符,如^google 表示匹配以google开头的字符串 $结束字符,google$表示以google结束的字符串。跟原子中的^含义不一样。

10、匹配单词边界,如is,表示查找is必须两边有边界,如空格、下划线等。比如what is this? 就可以匹配到whatisthis则不能匹配。

11、B匹配没有分解符的,如Bis 字符串what is it?,不会匹配,而this则会匹配。

12、{m}表示前面内容重复m次 /go{5}gle/,必须含有gooooogle才能匹配

13、{m,}表示前面内容重复>=m次才能匹配

14、{m,n}表示前面内容重复m=<xxx<=n次才能匹配

15、()合并整合匹配,放入内存,可以使用\1  \2方式调用,如/111(abc)222\1333/,表示必须匹配 111abc222abc333,\1是把内存中的(abc)调用出来

这样做有个好处可以保证前后括号里面的内容保持一致,如2013(.+)9\120 这样子后2013-9-20,2013/9/20会匹配,但2013/9-20不会匹配。如果2103(.+)9(.+)20就会匹配了。

 16、优先级

原文地址:https://www.cnblogs.com/huilange/p/3323361.html