PHP正则表达式处理函数(PCRE 函数)实例小结


Posted in PHP onMay 09, 2019

本文实例讲述了PHP正则表达式处理函数。分享给大家供大家参考,具体如下:

有时候在一些特定的业务场景中需要匹配,或者提取一些关键的信息,例如匹配网页中的一些链接,

提取一些数据时,可能会用到正则匹配。

下面介绍一下php中的一些常用的正则处理函数。

一、preg_replace($pattern,$replacement,$subject)

执行一个正则表达式的搜索和替换。

<?php
  echo "<pre>";
  $str = "12,34:56;784;35,67:897:65";
  //要求将上面的:,;都换成空格
  print_r(preg_replace("/[,;:]/"," ",$str));
?>

输出

12 34 56 784 35 67 897 65

二、preg_match($pattern,$subject,&$matches)

执行匹配正则表达式

<?php
  echo "<pre>";
  $str = "<a href=\"https://www.baidu.com\">团购商品</a>";
  //匹配出链接地址
  preg_match("/<a href=\"(.*?)\">.*?<\/a>/",$str,$res);
  print_r($res);
?>

输出

Array
(
    [0] => 团购商品
    [1] => https://www.baidu.com
)

三、preg_match_all($pattern,$subject,&$matches)

执行一个全局正则表达式匹配

<?php
  echo "<pre>";
  $str=<<<EOF
  <div>
    <a href="index.php" rel="external nofollow" >首页</a>
    <a href="category.php?id=3" rel="external nofollow" >GSM手机</a>
    <a href="category.php?id=4" rel="external nofollow" >双模手机</a>
    <a href="category.php?id=6" rel="external nofollow" >手机配件</a>
  </div>
EOF;
  //使用全局正则匹配
  preg_match_all("/<a href=\"(.*?)\">(.*?)<\/a>/s",$str,$res);
  print_r($res);
?>

输出

Array
(
    [0] => Array
        (
            [0] => 首页
            [1] => GSM手机
            [2] => 双模手机
            [3] => 手机配件
        )
    [1] => Array
        (
            [0] => index.php
            [1] => category.php?id=3
            [2] => category.php?id=4
            [3] => category.php?id=6
        )
    [2] => Array
        (
            [0] => 首页
            [1] => GSM手机
            [2] => 双模手机
            [3] => 手机配件
        )
)

四、preg_split($pattern,$subject)

通过一个正则表达式分隔字符串

<?php
  echo "<pre>";
  $str = "12,34:56;784;35,67:897:65";
  //分隔字符串
  $arr = preg_split("/[,;:]/",$str);
  print_r($arr);
?>

输出

Array
(
    [0] => 12
    [1] => 34
    [2] => 56
    [3] => 784
    [4] => 35
    [5] => 67
    [6] => 897
    [7] => 65
)

五、preg_quote($str)

转义正则表达式字符

正则表达式特殊字符有:. \ + * ? [ ^ ] $ ( ) { } = ! < > : -

<?php
  echo "<pre>";
  echo preg_quote("(abc){10}");//在每个正则表达式语法的字符前增加一个反斜杠
?>

输出

\(abc\)\{10\}

六、子存储

<?php
  echo "<pre>";
  //子存储使用
  $date="[2012-08-09],[2012,09-19],[2011/08,09],[2012/10/09],[2013,08,01]";
  //将上面字串中合法的日期匹配出来
  preg_match_all("/\[[0-9]{4}([\-,\/])[0-9]{2}\\1[0-9]{2}\]/",$date,$a);
  print_r($a);
?>

输出

Array
(
    [0] => Array
        (
            [0] => [2012-08-09]
            [1] => [2012/10/09]
            [2] => [2013,08,01]
        )
    [1] => Array
        (
            [0] => -
            [1] => /
            [2] => ,
        )
)

详细版请参考://3water.com/article/160947.htm

PHP 相关文章推荐
聊天室php&amp;mysql(六)
Oct 09 PHP
木翼下载系统中说明的PHP安全配置方法
Jun 16 PHP
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
Dec 14 PHP
PHP生成压缩文件实例
Feb 07 PHP
php银联网页支付实现方法
Mar 04 PHP
PHP中两个float(浮点数)比较实例分析
Sep 27 PHP
PHP Oauth授权和本地加密实现方法
Aug 12 PHP
php修改数组键名的方法示例
Apr 15 PHP
Yii 2.0如何使用页面缓存方法示例
May 23 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
Nov 13 PHP
php表单处理操作
Nov 16 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
Oct 18 PHP
Laravel配置全局公共函数的方法步骤
May 09 #PHP
Laravel Validator自定义错误返回提示消息并在前端展示
May 09 #PHP
PHP正则表达式笔记与实例详解
May 09 #PHP
PHP抽象类与接口的区别实例详解
May 09 #PHP
php和vue配合使用技巧和方法
May 09 #PHP
php查询内存信息操作示例
May 09 #PHP
PHP利用百度ai实现文本和图片审核
May 08 #PHP
You might like
php二分法在IP地址查询中的应用
2008/08/12 PHP
PHP简洁函数(PHP简单明了函数语法)
2012/06/10 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
jQuery Tools tooltip使用说明
2012/07/14 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
javascript正则表达式参数/g与/i及/gi的使用指南
2014/08/27 Javascript
jQuery实现form表单基于ajax无刷新提交方法详解
2015/12/08 Javascript
iscroll碰到Select无法选择下拉刷新的解决办法
2016/05/21 Javascript
jsp 自动编译机制详细介绍
2016/12/01 Javascript
关于JavaScript中的this指向问题总结篇
2017/07/23 Javascript
Vuejs实现购物车功能
2017/11/05 Javascript
bootstrap表格内容过长时用省略号表示的解决方法
2017/11/21 Javascript
Angular搜索场景中使用rxjs的操作符处理思路
2018/05/30 Javascript
Vue多系统切换实现方案
2018/06/05 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
2018/07/21 Javascript
vue cli3.0结合echarts3.0与地图的使用方法示例
2019/03/26 Javascript
微信小程序页面间传递数组对象方法解析
2019/11/06 Javascript
Element DateTimePicker日期时间选择器的使用示例
2020/07/27 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
2020/10/29 Javascript
基于p5.js 2D图像接口的扩展(交互实现)
2020/11/30 Javascript
[59:30]完美世界DOTA2联赛PWL S3 access vs LBZS 第二场 12.20
2020/12/23 DOTA
Python 专题二 条件语句和循环语句的基础知识
2017/03/19 Python
python实现自动发送邮件发送多人、群发、多附件的示例
2018/01/23 Python
新手如何发布Python项目开源包过程详解
2019/07/11 Python
Python GUI学习之登录系统界面篇
2019/08/21 Python
在脚本中单独使用django的ORM模型详解
2020/04/01 Python
python如何调用百度识图api
2020/09/29 Python
Shopee菲律宾:在线购买和出售
2019/11/25 全球购物
2014年群众路线党员自我评议
2014/09/24 职场文书
大学生党员自我评价
2015/03/04 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书
安全事故隐患排查治理制度
2015/08/05 职场文书
高二语文教学反思
2016/02/16 职场文书
世界十大儿童漫画书排名,法国国宝漫画排第五,第二是轰动日本连环
2022/03/18 欧美动漫
「魔法少女伊莉雅」美游粘土人开订
2022/03/21 日漫