一、正则表达式函数解析

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;     } } ?>

运行结果:

一、正则表达式函数解析_第1张图片

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里

?>

运行的结果,可见两个函数的区别:

一、正则表达式函数解析_第2张图片

注释部分运行结果,两个函数输出结果相同:

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’:

一、正则表达式函数解析_第3张图片

6. 正则表达式函数之preg_split

preg_split($pattern, $subject)

explode(…)功能很相似

explode(separator,string,limit)

参数

描述

separator

必需。规定在哪里分割字符串。

string

必需。要分割的字符串。

limit

可选。规定所返回的数组元素的数目。

可能的值:

  • 大于 0 - 返回包含最多 limit 个元素的数组
  • 小于 0 - 返回包含除了最后的 -limit 个元素以外的所有元素的数组
  • 0 - 会被当做 1, 返回包含一个元素的数组

例如:explode(‘,’,$str),把字符串$str,以‘,’为界分割成数组

输出结果:

一、正则表达式函数解析_第4张图片

7. 正则表达式函数之preg_quote

preg_quote($str)

正则运算符转译

输出结果:qwer\{asdf\}\[1234\]

总结

1.都以preg_开头

2.除了preg_quote函数外,第一个参数都是正则表达式

#使用场景

preg_match 表单验证等

preg_replace 非法词语过滤

你可能感兴趣的:(正则表达式)