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 相关文章推荐
我的论坛源代码(五)
Oct 09 PHP
PHP 5.0对象模型深度探索之类的静态成员
Mar 27 PHP
php面向对象全攻略 (七) 继承性
Sep 30 PHP
Look And Say 序列php实现代码
May 22 PHP
Sorting Array Values in PHP(数组排序)
Sep 15 PHP
PHP的curl实现get,post和cookie(实例介绍)
Jun 17 PHP
解析如何修改phpmyadmin中的默认登陆超时时间
Jun 25 PHP
PHP中上传多个文件的表单设计例子
Nov 19 PHP
php字符串函数学习之strstr()
Mar 27 PHP
php邮件发送的两种方式
Apr 28 PHP
php中引用符号(&amp;)的使用详细介绍
Dec 06 PHP
laravel5表单唯一验证的实例代码
Sep 30 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
DC四月将推出百页特刊漫画 纪念小丑诞生80周年
2020/04/09 欧美动漫
模拟OICQ的实现思路和核心程序(二)
2006/10/09 PHP
php 显示指定路径下的图片
2009/10/29 PHP
JpGraph php柱状图使用介绍
2011/08/23 PHP
php使用ICQ网关发送手机短信
2013/10/30 PHP
php输出指定时间以前时间格式的方法
2015/03/21 PHP
thinkPHP删除前弹出确认框的简单实现方法
2016/05/16 PHP
PHP7新特性foreach 修改示例介绍
2016/08/26 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
2018/04/20 PHP
JS控件autocomplete 0.11演示及下载 1月5日已更新
2007/01/09 Javascript
JavaScript高级程序设计(第3版)学习笔记 概述
2012/10/11 Javascript
JavaScript中__proto__与prototype的关系深入理解
2012/12/04 Javascript
分享经典的JavaScript开发技巧
2015/11/21 Javascript
JavaScript iframe数据共享接口实现方法
2016/01/06 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
2016/05/24 Javascript
实例讲解JavaScript中instanceof运算符的用法
2016/06/08 Javascript
JavaScript实现移动端页面按手机屏幕分辨率自动缩放的最强代码
2017/08/18 Javascript
angular共享依赖的解决方案分享
2020/10/15 Javascript
[04:00]DOTA2解说界神雕侠侣 CJ第四天谷子现场过生日
2013/07/30 DOTA
[01:51]历届DOTA2国际邀请赛举办地回顾 TI9落地上海
2018/08/26 DOTA
python连接mysql并提交mysql事务示例
2014/03/05 Python
python结合opencv实现人脸检测与跟踪
2015/06/08 Python
Python 迭代器工具包【推荐】
2016/05/06 Python
pip matplotlib报错equired packages can not be built解决
2018/01/06 Python
解决csv.writer写入文件有多余的空行问题
2018/07/06 Python
用Django写天气预报查询网站
2018/10/21 Python
python利用JMeter测试Tornado的多线程
2020/01/12 Python
Python实现画图软件功能方法详解
2020/07/28 Python
关于python中导入文件到list的问题
2020/10/31 Python
CSS3制作3D立方体loading特效
2020/11/09 HTML / CSS
英国亚马逊官方网站:Amazon.co.uk
2019/08/09 全球购物
速卖通欧盟:Aliexpress EU
2020/08/19 全球购物
汤姆叔叔的小屋读书笔记
2015/06/30 职场文书
浅谈mysql执行过程以及顺序
2021/05/12 MySQL
Anaconda安装pytorch和paddle的方法步骤
2022/04/03 Python
根德5570型九灯四波段立体声收音机是电子管收音机的楷模 ? 再论5570
2022/04/05 无线电