PHP中常用的正则表达式函数

/ 0评 / 0

我们先来写个暴力输出函数用于调试

//暴力打印函数
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 --非法词语过滤等。

评论已关闭。