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 替换模板变量实现步骤
Aug 24 PHP
探讨PHP JSON中文乱码的解决方法详解
Jun 06 PHP
PHP自动生成后台导航网址的最佳方法
Aug 27 PHP
php导入大量数据到mysql性能优化技巧
Dec 29 PHP
PHP中error_log()函数的使用方法
Jan 20 PHP
PHP使用缓存即时输出内容(output buffering)的方法
Aug 03 PHP
利用PHP如何实现Socket服务器
Sep 23 PHP
Yii遍历行下每列数据的方法
Oct 17 PHP
Yii2下点击验证码的切换实例代码
Mar 14 PHP
php面向对象之反射功能与用法分析
Mar 29 PHP
Laravel基础-关于引入公共文件的两种方式
Oct 18 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
Nov 10 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字符串长度计算 - strlen()函数使用介绍
2013/10/15 PHP
浅析Yii2 gridview实现批量删除教程
2016/04/22 PHP
浅谈php中urlencode与rawurlencode的区别
2016/09/05 PHP
基于jquery实现的文字淡入淡出效果
2013/11/14 Javascript
Javscript调用iframe框架页面中函数的方法
2014/11/01 Javascript
javascript获取四位数字或者字母的随机数
2015/01/09 Javascript
Jquery操作Ajax方法小结
2015/11/29 Javascript
jQuery中each()、find()和filter()等节点操作方法详解(推荐)
2016/05/25 Javascript
JS弹出新窗口被拦截的解决方法
2016/08/09 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
bootstrap使用validate实现简单校验功能
2016/12/02 Javascript
vue获取DOM元素并设置属性的两种实现方法
2017/09/30 Javascript
详解webpack模块加载器兼打包工具
2018/09/11 Javascript
vue自定义键盘信息、监听数据变化的方法示例【基于vm.$watch】
2019/03/16 Javascript
深入理解 JS 垃圾回收
2019/06/03 Javascript
layui关闭弹窗后刷新主页面和当前更改项的例子
2019/09/06 Javascript
js数组中去除重复值的几种方法
2020/08/03 Javascript
[49:21]2018DOTA2亚洲邀请赛3月30日 小组赛B组 Effect VS iG
2018/03/31 DOTA
用Django实现一个可运行的区块链应用
2018/03/08 Python
python_opencv用线段画封闭矩形的实例
2018/12/05 Python
python保存字典和读取字典的实例代码
2019/07/07 Python
python3字符串操作总结
2019/07/24 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
2019/10/30 Python
python内打印变量之%和f的实例
2020/02/19 Python
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
html5 自定义播放器核心代码
2013/12/20 HTML / CSS
使用HTML5 Geolocation实现一个距离追踪器
2018/04/09 HTML / CSS
LTD Commodities:礼品,独特发现,家居装饰,家用器皿
2017/08/11 全球购物
Emma Bridgewater官网:英国餐具制造商
2019/11/24 全球购物
数据库专业英语
2012/11/30 面试题
八年级英语教学反思
2014/01/09 职场文书
欢迎领导检查标语
2014/06/27 职场文书
委托公证书样本
2015/01/23 职场文书
2016新年慰问信范文
2015/03/25 职场文书
教你利用python实现企业微信发送消息
2021/05/23 Python
前端JS获取URL参数的4种方法总结
2022/04/05 Javascript