您的位置 首页 php

「php」php正则表达常用函数的总结(代码示例)

本篇文章给大家带来的内容是关于php正则表达常用 函数 的总结(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

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

* preg_match()

* preg_match_all()

* preg_replace()

* preg_filter()

* preg_grep()

* preg_split()

* preg_quote()

接下来对比讲解:

讲解中 $pattern 通常正则表达式 $subject 通常表示目标处理数据

定义一个方法 方便查看数据类型:

function show($val = null){

if(empty($val)){

//打印空

echo ‘mull’;

}elseif(is_array($val) || is_object($val)){

//打印数组或者对象

echo ‘<pre>’;

print_r($val);

echo ‘</pre>’;

}else{

//打印string int float

echo $val;

}

}

  1. preg_match()与preg_match_all()

/*方法简单说明*/

preg_match($pattern,$subject,[array &$matches])

//匹配一次 第三个参数可选 匹配结果放置matches数组

preg_match_all($pattern,$subject,array &matches)

//匹配多次 三参必选 匹配结果放置matches数组

$pattern = ‘/[0-9]/’;

$subject=’b5fg4sgf3sd2f1g’;

$m1 =preg_match($pattern,$subject,$arr1);

show($m1);

show($arr1);

/*

1

Array

(

[0] => 5

)

*/

$ m2 =preg_match_all($pattern,$subject,$arr2);

show($m2);

show($arr2);

/*

5

Array

(

[0] => Array

(

[0] => 5

[1] => 4

[2] => 3

[3] => 2

[4] => 1

)

)

*/

2.preg_replace()与preg_filter()

/*方法简单说明*/

/*

*

* preg_replace与preg_filter

* preg_replace($pattern,$replacement,$subject)

* //正则替换函数被替换对象是数组 返回全部

//正则替换函数 被替换对象是数组 仅返回被替换元素

* 联想:str_repalce()

* echo str_replace(“world”,”Shanghai”,”Hello world!”);

* //得到Hello Shanghai!

//第一测 字符串 中替换字符串 结论:此处preg_replace()与preg_filter()无区别

$pattern = ‘/[0-9]/’;

$subject=’b65fg4sgf3sd2f1g’;

$replacement = ‘_’;

$str1 = preg_replace($pattern,$replacement,$subject);

$str2 = preg_filter($pattern,$replacement,$subject);

echo ‘<hr>’;

show($str1);

echo ‘<br>’;

show($str2);

/*

b__fg_sgf_sd_f_g

b__fg_sgf_sd_f_g

*/

//第二测 字符串中根据数组正则 替换 结论:此处preg_replace()与preg_filter()无区别

$pattern = array(‘/[123]/’,’/[456]/’,’/[789]/’);

$subject=’b123fg3456sgf3789f1g’;

$replacement = array(‘天’,’地’,’人’);

$str3 = preg_replace($pattern,$replacement,$subject);

$str4 = preg_filter($pattern,$replacement,$subject);

echo ‘<hr>’;

show($str3);

echo ‘<br>’;

show($str4);

/*

b天天天fg天地地地sgf天人人人f天g

b天天天fg天地地地sgf天人人人f天g

*/

//第三测 数组中根据数组正则 替换 结论:此处展示preg_repalce()与preg_filter()区别

$pattern = array(‘/[123]/’,’/[456]/’,’/[789]/’);

$subject=array(‘b’,’fg3′,’456′,’sgf’,’789′,’fg’);

$replacement = array(‘天’,’地’,’人’);

$str5 = preg_replace($pattern,$replacement,$subject);

$str6 = preg_filter($pattern,$replacement,$subject);

echo ‘<hr>’;

show($str5);

echo ‘<br>’;

show($str6);

/*

Array

(

[0] => b

[1] => fg天

[2] => 地地地

[3] => sgf

[4] => 人人人

[5] => fg

)

Array

(

[1] => fg天

[2] => 地地地

[4] => 人人人

)

*/

3 . preg_grep($pattern, array $subject) //此处$subject只可以为一维数组

/*函数说明*/

preg_grep($pattern,array $input)//只可以匹配一维数组 返回匹配成功的数组元素

可以理解preg_grep()为阉割版 preg_filter()

只做了匹配 不作替换

$pattern = ‘/[0-9]/’;

$subject=array(‘b’,’fg3′,’456′,’sgf’,’789′,’fg’);

$arr = preg_grep($pattern,$subject);

show($arr);

/*

Array

(

[1] => fg3

[2] => 456

[4] => 789

)

*/

4 . preg_split($pattern,$subject)//一匹配成功为切割点切割字符串成数组

可以理解preg_split()升级版的explode()

$pattern = ‘/[0-9]/’;

$subject=’bfg3456sgf789fg’;

$arr = preg_split($pattern,$subject);

show($arr);

/*

Array

(

[0] => bfg

[1] =>

[2] =>

[3] =>

[4] => sgf

[5] =>

[6] =>

[7] => fg

)

*/

5 . preg_quote($str) 正则 运算符 转译

/*

* preg_quote($str) 正则运算符转译

* . \ + * ? [ ^ ] $ () {} = ! < > | : –

*

*/

echo ‘<hr>’;

$str = “qewr{asdf}[123]”;

$str =preg_quote($str);

print_r($str);

/*

qewr\{asdf\}\[123\]

*/

简单总结通性:

preg_ 开头

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

preg_match 表单验证等

preg_replace 非法词语过滤等

文章来源:智云一二三科技

文章标题:「php」php正则表达常用函数的总结(代码示例)

文章地址:https://www.zhihuclub.com/78504.shtml

关于作者: 智云科技

热门文章

网站地图