正则表达式
正则表达式
相当于模糊查询
//定界符:斜杠/正则/
//匹配开始 ^
//匹配结束:$
//
$zz="/^$/";//以"^"开始,以"$"结束
常用
\d 匹配一个数字[0-9]
\D 非数字字符
\s 匹配任何不可见字符,空格,制表符,换页符
\S 可见字符
\w 匹配包含下划线的任何单词,包含数字
\W 非单词
* 匹配前面的子表达式任意次
+ 匹配前面的表达式一次或多次
? 前面的子表达式一次或0次
{n} 匹配n次
[a-z]a-z之间的任意一个字母
$zz="^\d$"; //以一个数字,基本格式
1.替换
$zz = "/(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}/"; //手机号的正则表达式
echo preg_replace($zz,"phone",$str);
2.分割字符串
var_dump(preg_splid($zz,$str))//根据正则拆分字符串
$zz = "/(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}/"; //手机号的正则表达式
$str="hello 18353360995 world 18353369524 aaa bbb";
$arr=array();//定义一个空数组
preg_match($zz,$str,$arr);//匹配第一个满足正则的字符串,只能取出第一个
var_dump($arr);
preg_match_all($zz,$srt,$arr);//获取满足正则的所有的字符串
var_dump($arr);
3.数组
$arr=array(
"18353360995",
"6256",
"haha",
"tangyuan",
"18853362245"
)
preg_grep($zz,$arr);//匹配满足正则表达式的数组
var_dump($arr);