我们先来写个暴力输出函数用于调试
//暴力打印函数
function show($value = null){
if (empty($value)) {
echo "null";
} elseif (is_array($value) || is_object($value)) {
print_r($value);
} else{
echo $value;
}
}
preg_match($pattern, $subject, $matche) //匹配到第一个数据就不在匹配了
preg_match_all($pattern, $subject, $matche) //全部数据匹配完
$pattern = '/[0-9]/';
$subject = 'afasfsafsdfsafdsadfsafdsafdasfd2341jgj3gj414gjg41j2g4j';
$replace = '大神';
$m1 = $m2 = array();
preg_match($pattern, $subject,$m1);
preg_match_all($pattern, $subject, $m2);
show($m1);
echo "
";
show($m2);
preg_replace($pattern, $replace, $subject) //在遇到数组时会把所有数据返回(能替换的替换掉)
preg_filter($pattern, $replace, $subject) //在遇到数组时只把替换掉的数据返回
//结合 str_replace 学习
$pattern = array('/[0123]/' , '/[456]/' , '/[789]/');
$subject = array('wewe', 'dafasf5afd', 'fasfdsaf' , 'fasjf3132sdfsaf', 's' , '8sd9');
$replace = array('我', '是' , '大', '神');
$string1 = preg_replace($pattern, $replace, $subject);
$string2 = preg_filter($pattern, $replace, $subject);
show($string1);
echo "
";
show($string2);
preg_grep($pattern, $input);
//结合 preg_filter 学习,其实是阉割版
$pattern = '/[0-9]/';
$subject = array('wewe', 'dafasf5afd', 'fasfdsaf' , 'fasjf3132sdfsaf', 's' , '8sd9');
$arr = preg_grep($pattern, $input);
show($arr);
preg_split($pattern, $subject);
//结合 explode 学习
$pattern = '/[0-9]/';
$subject = '我7是2大神3啊';
$arr = preg_split($pattern, $subject);
show($arr);
preg_quote($str); //正则运算转义符,自动帮我们转义
总结:都是以preg_开头,除preg_quote函数外,第一个参数都是正则表达式。
preg_match --表单验证等,preg_replace --非法词语过滤等。