preg函数

/*
$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 非法词语过滤
*/

posted @ 2017-05-04 16:46  皇家玄学团  阅读(417)  评论(0编辑  收藏  举报