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 从数据库提取二进制图片的处理代码
Sep 09 PHP
php的ajax简单实例
Feb 27 PHP
PHP中通过trigger_error触发PHP错误示例
Jun 23 PHP
php计算税后工资的方法
Jul 28 PHP
ThinkPHP进程计数类Process用法实例详解
Sep 25 PHP
php图片上传类 附调用方法
May 15 PHP
基于PHP实现用户注册登录功能
Oct 14 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
Feb 15 PHP
php登录超时检测功能实例详解
Mar 21 PHP
PHP字符串中抽取子串操作实例分析
Jun 22 PHP
Laravel基础_关于view共享数据的示例讲解
Oct 14 PHP
PHP判断当前使用的是什么浏览器(推荐)
Oct 27 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
LotusPhp笔记之:基于ObjectUtil组件的使用分析
2013/05/06 PHP
PHP两种去掉数组重复值的方法比较
2014/06/19 PHP
destoon官方标签大全
2014/06/20 PHP
CL vs ForZe BO5 第三场 2.13
2021/03/10 DOTA
基于Jquery的简单&amp;简陋Tabs插件代码
2010/02/09 Javascript
动态创建样式表在各浏览器中的差异测试代码
2011/09/13 Javascript
jQuery代码优化 选择符篇
2011/11/01 Javascript
EasyUI中的tree用法介绍
2011/11/01 Javascript
JQuery仿小米手机抢购页面倒计时效果
2014/12/16 Javascript
javascript每日必学之继承
2016/02/23 Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
2016/02/25 Javascript
jquery trigger实现联动的方法
2016/02/29 Javascript
javascript实现根据汉字获取简拼
2016/09/25 Javascript
Vue.js中数组变动的检测详解
2016/10/12 Javascript
jQuery.cookie.js使用方法及相关参数解释
2017/03/06 Javascript
vue音乐播放器插件vue-aplayer的配置及其使用实例详解
2017/07/10 Javascript
基于Two.js实现星球环绕动画效果的示例
2017/11/06 Javascript
Nodejs模块载入运行原理
2018/02/23 NodeJs
动态加载、移除js/css文件的示例代码
2018/03/20 Javascript
玩转Koa之koa-router原理解析
2018/12/29 Javascript
详解Vue数据驱动原理
2020/11/17 Javascript
用Python实现QQ游戏大家来找茬辅助工具
2014/09/14 Python
Python去除字符串两端空格的方法
2015/05/21 Python
Python基于回溯法子集树模板解决找零问题示例
2017/09/11 Python
python3读取excel文件只提取某些行某些列的值方法
2018/07/10 Python
使用tensorflow实现线性回归
2018/09/08 Python
python如何将两个txt文件内容合并
2019/10/18 Python
Python实现序列化及csv文件读取
2020/01/19 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
2020/05/22 Python
Sephora丝芙兰马来西亚官方网站:国际化妆品购物
2018/03/15 全球购物
业务员岗位职责范本
2013/12/15 职场文书
摄影助理岗位职责
2014/02/07 职场文书
英语四级考试作弊检讨书
2014/09/29 职场文书
课改心得体会范文
2016/01/25 职场文书
2019年工作总结范文
2019/05/21 职场文书
Python机器学习应用之工业蒸汽数据分析篇详解
2022/01/18 Python