何为正则表达式,就是字符串搜索与匹配的工具
abdslfh34asdfasdfy33811
[0-9]匹配数字 //3,4,3,3,8,1,1
[0-9]{2}连续两位的数字 //34,33
[1234]匹配到1234任何一个数字
参数说明
$pattern==正则说明 $subject==匹配的目标数据
查找
preg_match只会匹配一次
preg_match_all会匹配多次
举例:
$pattern='/[0-9]/'; $subject = '3dfsdf55sdwr33df66dfggf56sdfg2'; preg_match($pattern, $subject, $m1); preg_match_all($pattern, $subject, $m2); print_r($m1); print_r($m2); exit;
输出结果
$pattern='/[0-9]{2}/'; $subject = '3dfsdf55sdwr33df66dfggf56sdfg2'; $t1= preg_match($pattern, $subject, $m1); $t2= preg_match_all($pattern, $subject, $m2); print_r($m1); print_r($m2); print_r($t1.PHP_EOL); t1和t2是返回个数 print_r($t2); exit;
目标中查找和替换
str_replace是preg_replace的子集
都支持字符和数组替换
区别在于 preg_filter只保留发生替换的元素
阉割版的preg_filter函数,匹配目标中并不替换直接返回值
运行结果
explode分割字符串
运行结果,升级版
把一个字符中的正则运算符进行转义
正则运算符
运行结果