一、正则表达式
preg_match_all — 执行一个全局正则表达式匹配
(按指定的正则表达式,在给定的字符串中进行搜索,匹配到符合特征的部分取出来。
$pattern='/test/';
$str='abc';
preg_match_all($pattern,$str,$arr);
二、界定符
一般习惯使用/作为界定符,其实,除了字母,数字,和反斜线以外的字符都可以作为定界符,如:#,!,{},|,都是可以的。
定界符放在起始位置,前后一致。
三、普通字符
比如: a-z、 A-Z、0-9、双引号、单引号,它们没有特殊的含义
四、元字符
元字符指的是在正则表达式中有特殊含义的字符常用元字符见备注!
d 匹配任意一个十进制数字,等价于[0-9]
如:$pattern="/tdst/"; 匹配【t[0-9]st】
D 匹配任意一个除十进制数字以外字符,等价于[^o-9]
如:$pattern="/tDst/"; 匹配【t[a-Z]st】
s 匹配任意一个空白字符,比如换页符、换行符、回车符、制表符、垂直制表符
如:$pattern="/tsst/, 匹配到t st, “t st"( 换行符, 回车符, 制表符)
S 匹配除空白字符以外的任何一个字符
w 匹配任意一个数字或字母或下划线
如:$pattern="/twst/"; 匹配【t[a-Z]st】
W 匹配除数字、字母、下划线以外的任意一个字符
. 匹配除换行符以外的任意一个字符
* 匹配0次或1次或多次前面的任一字符
(放在*前面的字符可以出现0次,也可以出来1次或多次
如:$pattern="/te*st/"; 可以匹配 【abctst】【abcteeeest】
+ 匹配1次或多次其前面的字符
? 匹配o次或1次其前面的字符
{n} 表示其前面字符恰好出现n次
{n,} 表示其前面字符出现不少于n次
{n,m} 表示其前面的字符至少出现n次,最多出现m次
--上面是限制前面字符个数的条件
示例:
$pattern="/t.{3}st/"; 相当于[/t...st]
$pattern="/t.*st/"; (.*相当于0个点或1个点或多个点)
$pattern="/t.*t/"; 【abctestwdskfstsfst】可以匹配最长的[testwdskfstsfst]
(.*配合使用默认情况下是贪婪匹配,尽可能多的去匹配。
如果不需要这种方式:.*后面加一个?可以解决贪婪匹配的问题。
...
^或A 匹配字符串开始位置
$或者z 匹配字符串的结束位置
l 匹配两个或多个模式
l 匹配方括号中的任意一个字符
[^] 匹配除方括号中字符以外的任意一个字符
(0) 将括号中作为一个整体以便将其中的内容获取到
地址:https://www.bilibili.com/video/BV1Vi4y157Yk
Tag: 正则表达式