正则匹配相应知识点
str_replace("world","Shanghai","Hello world!"); //替换字符串中的指定的值,需要注意本函数区分大小写
$str1=preg_replace($pattern,$replacement,$subject); //不管替换的值有没有改变都保存
$str2=preg_filter($pattern,$replacement,$subject); //只保存发生替换的值
$arr=preg_grep($pattern,$subject); //本函数只找出能够匹配的字符,但是不进行替换,同时会过滤掉不能够进行匹配的
explode(" ",$str) //分割字符串为数组
$arr=preg_split($pattern,$subject); //升级版的explode()函数,也是把字符串分割成数组
$str=preg_quote($str); //将字符串中的正则表达式进行转译
preg_match($pattern,$subject,$m1); //输出匹配到的字符,此函数只输出第一个
preg_match_all($pattern,$subject,$m2); //输出匹配到的字符,相比于preg_match()此函数是匹配全部的字符串
———————————————————————界定符————————————————————————————
表示一个正则表达式的开始和结束
———————————————————————原子————————————————————————————--
元字符
原子的筛选方式
| 匹配两个或者多个分支的选择
[] 匹配方括号中的任意一个原子
[^] 匹配方括号中的原子之外的任意字符
原子的集合
. 匹配换行符之外的任意字符
d 进制的数字,即[0-9]
D 匹配任意一个非匹配任意一个十十进制数字,即[^0-9]
s 匹配一个不可见原子,即[f
v] (什么是不可见原子呢?就是换行符,空格等看到不到的原子)
S 匹配一个可见原子,即[^f
v] (除了换行符等不可见的之外的原子,都是可见的原子)
w 匹配一个数字,字母或下划线,即[0-9a-zA-Z]
W 匹配任意的一个非数字,字母或下划线,即[^0-9a-zA-Z]
量词
{n} 表示其前面的原子恰好出现n次
{n,} 表示其前面的原子最少出现n次
{n,m} 表示其前面的原子至少出现n次,最多出现m次
* 匹配0次,1次多次之前出现的原子,即{0,}
+ 匹配1次或者多次其之前出现的原子,即{1,}
? 匹配0 次或者1次其之前出现的原子,即{01,}
边界控制与模式单元
^ 匹配字符串开始的位置
$ 匹配字符串结束的位置
() 匹配其中的整体为一个原子
常见的修正模式
U 懒惰匹配
i 忽略英文字符大小写
x 忽略空白
s 让元字符' . '匹配包括换行符在内的所有字符