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 SQLite类
May 07 PHP
PHP笔记之:日期函数的使用介绍
Apr 24 PHP
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
Jun 21 PHP
浅析php变量作用域的一些问题
Aug 08 PHP
PHP session文件独占锁引起阻塞问题解决方法
May 12 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
Mar 18 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
Oct 19 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
Mar 31 PHP
解决laravel5中auth用户登录其他页面获取不到登录信息的问题
Oct 08 PHP
TP3.2.3框架文件上传操作实例详解
Jan 23 PHP
如何运行/调试你的PHP代码
Oct 23 PHP
php并发加锁问题分析与设计代码实例讲解
Feb 26 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
比较discuz和ecshop的截取字符串函数php版
2012/09/03 PHP
一个php短网址的生成代码(仿微博短网址)
2014/05/07 PHP
超强的IE背景图片闪烁(抖动)的解决办法
2007/09/09 Javascript
jsTree树控件(基于jQuery, 超强悍)[推荐]
2009/09/01 Javascript
js querySelector和getElementById通过id获取元素的区别
2012/04/20 Javascript
js时间比较示例分享(日期比较)
2014/03/05 Javascript
jquery新的绑定事件机制on方法的使用方法
2014/04/15 Javascript
node.js中的path.isAbsolute方法使用说明
2014/12/08 Javascript
jQuery对于显示和隐藏等常用状态的判断方法
2014/12/13 Javascript
jQuery使用after()方法在元素后面添加多项内容的方法
2015/03/26 Javascript
使用coffeescript编写node.js项目的方法汇总
2015/08/05 Javascript
JavaScript——DOM操作——Window.document对象详解
2016/07/14 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
2016/09/23 Javascript
JavaScript实现图片轮播组件代码示例
2016/11/22 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
AngularJS中使用ngModal模态框实例
2017/05/27 Javascript
JS实现对json对象排序并删除id相同项功能示例
2018/04/18 Javascript
微信小程序之裁剪图片成圆形的实现代码
2018/10/11 Javascript
element-ui table span-method(行合并)的实现代码
2018/12/20 Javascript
微信小程序iBeacon测距及稳定程序的实现解析
2019/07/31 Javascript
vue iview实现动态新增和删除
2020/06/17 Javascript
vue自定义指令限制输入框输入值的步骤与完整代码
2020/08/30 Javascript
Linux下用Python脚本监控目录变化代码分享
2015/05/21 Python
浅谈Python爬取网页的编码处理
2016/11/04 Python
对tensorflow 的模型保存和调用实例讲解
2018/07/28 Python
python 实现交换两个列表元素的位置示例
2019/06/26 Python
妙用itchat! python实现久坐提醒功能
2019/11/25 Python
python 如何在测试中使用 Mock
2021/03/01 Python
HTML5 canvas基本绘图之文字渲染
2016/06/27 HTML / CSS
TCP协议通讯的过程和步骤是什么
2015/10/18 面试题
最新的大学生找工作自我评价
2013/09/29 职场文书
有针对性的求职自荐信
2013/11/14 职场文书
五星级酒店餐饮部总监的标准岗位职责
2014/02/17 职场文书
《美丽的田园》教学反思
2014/03/01 职场文书
工作会议方案
2014/05/21 职场文书
apache虚拟主机配置的三种方式(小结)
2022/07/23 Servers