/*
$pattern 正则表达式
$subject匹配的目标数据
preg_match &一维数组 匹配第一个结果次数
preg_match_all &二维数组 返回所有匹配的结果次数
*/
$pattern='/[0-9]/';
$subjiec='wsdf23j3g4g432jg';
$m1=$m2=array();
$t1=preg_match($pattern, $subjiec,$m1); //return 1 一维数组,只匹配一次,匹配第一个结果
$t2=preg_match_all($pattern, $subjiec,$m2); //return 7 二维数组,匹配所有
show($m1); //返回匹配的值 array(0=>2)
echo '<br/>';
show($m2);//Array(([0] => 2[1] => 3[2] => 3[3] => 4[4] => 4[5] => 3[6] => 2))
echo '<br/>';
show($t1.'||'.$t2);//返回匹配的结果次数
/*
preg_replace 保留所有值包括(未匹配)
preg_filter 只保留匹配结果
Preg_gerp相当于阉割版的preg_filter,用正则去匹配,不替换,匹配到的结果返回。【字符串正则】匹配数组
*/
$subject=array('wsdf','23j3','sdaf','asdf23');
$pattern=array('/[0123]/','/[456]/','/[789]/');
$pattern1='/[0-9]/';
$replacement=array('慕','女','神');
$arr=preg_replace($pattern, $replacement, $subject);
$arr2=preg_filter($pattern, $replacement, $subject);
$arrGrep=preg_grep($pattern1, $subject);
echo '<br/>';
show($arr);
/*
($arr1)Array preg_replace 保留所有值包括(未匹配)
(
[0] => wsdf
[1] => 慕慕j慕
[2] => sdaf
[3] => asdf慕慕
)
*/
echo '<br/>';
show($arr2);
/*($arr2)array preg_filter 只保留匹配结果
(
[1] => 慕慕j慕
[3] => asdf慕慕
)*/
echo '<br/>';
show($arrGrep);
/*
Array ($arrGrep) 匹配含有$pattern返回的结果
(
[1] => 23j3
[3] => asdf23
)
*/
/*
preg_split类似于explode 将字符串转化成数组,并匹配中的字符作为断点断开。
3与4之间string(0) ""
*/
$subject='慕2女34神,约2吗';
$arrSplit=preg_split($pattern1,$subject);
show($arrSplit);
/*
Array ($arrSplit)
(
[0] => 慕
[1] => 女
[2] =>
[3] => 神,约
[4] => 吗
)
*/
var_dump($arrSplit[2]); //''空字符串
/*
preg_quote()正则运算符转义
*/
/*
preg总结:
除了quote函数外,其余的第一个参数都是正在表达式$pattern
preg_match 表单验证
preg_replace 非法词语过滤
*/