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 相关文章推荐
详细介绍:Apache+PHP+MySQL配置攻略
Sep 05 PHP
两种php调用Java对象的方法
Oct 09 PHP
php采集时被封ip的解决方法
Aug 29 PHP
Linux Apache PHP Oracle 安装配置(具体操作步骤)
Jun 17 PHP
CodeIgniter启用缓存和清除缓存的方法
Jun 12 PHP
yii实现图片上传及缩略图生成的方法
Dec 04 PHP
php判断linux下程序问题实例
Jul 09 PHP
yii2.0使用Plupload实现带缩放功能的多图上传
Dec 22 PHP
Yii框架弹出框功能示例
Jan 07 PHP
PHP cURL获取微信公众号access_token的实例
Apr 28 PHP
ThinkPHP框架实现的邮箱激活功能示例
Jun 15 PHP
PHP 实现base64编码文件上传出现问题详解
Sep 01 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
Centos6.5和Centos7 php环境搭建方法
2016/05/27 PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
2016/10/08 PHP
php arsort 数组降序排序详细介绍
2016/11/17 PHP
Yii框架数据模型的验证规则rules()被执行的方法
2016/12/02 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
tp5修改(实现即点即改)
2019/10/18 PHP
jquery 学习笔记 传智博客佟老师附详细注释
2020/09/12 Javascript
默认让页面的第一个控件选中的javascript代码
2009/12/26 Javascript
JS 文件大小判断的实现代码
2010/04/07 Javascript
JavaScript中两个感叹号的作用说明
2011/12/28 Javascript
jQuery中JSONP的两种实现方式详解
2016/09/26 Javascript
关于axios如何全局注册浅析
2018/01/14 Javascript
Vue兼容ie9的问题全面解决方案
2018/06/19 Javascript
layui type2 通过url给iframe子页面传值的例子
2019/09/06 Javascript
vue-router之解决addRoutes使用遇到的坑
2020/07/19 Javascript
vue实现购物车的小练习
2020/12/21 Vue.js
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
2021/01/22 Vue.js
[01:13]2015国际邀请赛线下观战现场
2015/08/08 DOTA
[06:44]2018DOTA2亚洲邀请赛4.5 SOLO赛 MidOne vs Sumail
2018/04/06 DOTA
Python 编码处理-str与Unicode的区别
2016/09/06 Python
对Tensorflow中权值和feature map的可视化详解
2018/06/14 Python
详解python中的模块及包导入
2019/08/30 Python
python字符串的index和find的区别详解
2020/06/20 Python
Windows 平台做 Python 开发的最佳组合(推荐)
2020/07/27 Python
用python写爬虫简单吗
2020/07/28 Python
python编写实现抽奖器
2020/09/10 Python
浅谈CSS3中display属性的Flex布局的方法
2017/08/14 HTML / CSS
美国在线打印网站:Overnight Prints
2018/10/11 全球购物
飞利信loadrunner和软件测试笔试题
2012/09/22 面试题
测试驱动开发的主要步骤是什么
2014/12/10 面试题
医生自荐信
2013/10/11 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
政府个人对照检查材料思想汇报
2014/10/08 职场文书
工商行政处罚决定书
2015/06/24 职场文书
图书馆义工感想
2015/08/07 职场文书
win10更新失败无限重启解决方法
2022/04/19 数码科技