1.正则表达式参数说明
建议用$pattern = 正则表达式 $subject = 匹配的目标数据 这个两个参数来命名。
2.正则表达式数据输出函数简介
';
print_r($var);
echo '
';
}else{
echo $var;
}
}
?>
3.正则表达式之preg_match ,preg_match_all
PHP中常用的正则表达式函数:preg_match()与preg_match_all()
preg_match($pattern,$subject,[array &$matches])第三个参数可选,匹配一次
preg_match_all($pattern,$subject,[array &$matches])第三个参数必填,匹配所有
第三个参数有&符号,表示第三个参数是引用传递
return 匹配到结果的次数;
';#分隔线
show($m2);#匹配到的数放到数组m2里
echo '
';
show($t1.'||'.$t2);#匹配的次数
function show($var = null){
if (empty($var)){
echo 'null';
}elseif (is_array($var) || is_object($var)){
echo '';
print_r($var);
echo '
';
}else{
echo $var;
}
}
?>
运行结果:
4.正则表达式函数之preg_replace与preg_filter
php中常用的正则表达式函数
preg_replace 与preg_filter
preg_replace($pattern,$replacement,$subject)
preg_filter($pattern,$replacement,$subject)
字符串替换:str_replace(…)
str_replace(find,replace,string,count)
参数 |
描述 |
find |
必需。规定要查找的值。 |
replace |
必需。规定替换 find 中的值的值。 |
string |
必需。规定被搜索的字符串。 |
count |
可选。对替换数进行计数的变量。 |
';#分隔线
show($str2);#匹配到的数放到数组m2里
?>
运行的结果,可见两个函数的区别:
注释部分运行结果,两个函数输出结果相同:
5.正则表达式函数之preg_grep
preg_grep($pattern,array $input) #阉割版preg_filter(..),只匹配不替换,只返回匹配到的数组里的数据
$pattern = '/[0-9]/';#正则表达式,匹配0-9的数值
$subject = array('dfsf','s26f','7sd','f8','4c');#要匹配的目标数组
$arr = preg_grep($pattern,$subject);
show($arr);#匹配到的数放到数组里
返回结果,少了【0】=>‘dfsf’:
6. 正则表达式函数之preg_split
preg_split($pattern, $subject)
与explode(…)功能很相似
explode(separator,string,limit)
参数 |
描述 |
separator |
必需。规定在哪里分割字符串。 |
string |
必需。要分割的字符串。 |
limit |
可选。规定所返回的数组元素的数目。 可能的值:
|
例如:explode(‘,’,$str),把字符串$str,以‘,’为界分割成数组
输出结果:
7. 正则表达式函数之preg_quote
preg_quote($str)
正则运算符转译
输出结果:qwer\{asdf\}\[1234\]
总结
1.都以preg_开头
2.除了preg_quote函数外,第一个参数都是正则表达式
#使用场景
preg_match 表单验证等
preg_replace 非法词语过滤