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 COOKIE设置为浏览器进程
Jun 21 PHP
PHP中Date()时间日期函数的使用方法小结
Apr 20 PHP
PHP几个数学计算的内部函数学习整理
Aug 06 PHP
php4与php5的区别小结(配置异同)
Dec 20 PHP
php中操作memcached缓存进行增删改查数据的实现代码
Aug 15 PHP
smarty中post用法实例
Nov 28 PHP
php操作(删除,提取,增加)zip文件方法详解
Mar 12 PHP
PHP自毁程序(慎用)
Jul 09 PHP
非常经典的PHP文件上传类分享
May 15 PHP
thinkphp分页实现效果
Oct 13 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
Feb 03 PHP
php + ajax 实现的写入数据库操作简单示例
May 16 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 adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
利用PHP实现智能文件类型检测的实现代码
2011/08/02 PHP
PHP curl 获取响应的状态码的方法
2014/01/13 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
2014/07/25 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
2016/03/17 PHP
Mootools 1.2教程(2) DOM选择器
2009/09/14 Javascript
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
javascript异步编程代码书写规范Promise学习笔记
2015/02/11 Javascript
JS实现的另类手风琴效果网页内容切换代码
2015/09/08 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
2017/02/17 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
2017/07/06 Javascript
HTML5+JS+JQuery+ECharts实现异步加载问题
2017/12/16 jQuery
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
2018/01/08 Javascript
vue中的自定义分页插件组件的示例
2018/08/18 Javascript
vue之a-table中实现清空选中的数据
2019/11/07 Javascript
原生js实现随机点餐效果
2019/12/10 Javascript
小程序如何定位所在城市及发起周边搜索
2020/02/11 Javascript
Nuxt.js nuxt-link与router-link的区别说明
2020/11/06 Javascript
Python中正则表达式的详细教程
2015/04/30 Python
Python基于PycURL实现POST的方法
2015/07/25 Python
Python模块结构与布局操作方法实例分析
2017/07/24 Python
Python编程之变量赋值操作实例分析
2017/07/24 Python
Django添加sitemap的方法示例
2018/08/06 Python
python之super的使用小结
2018/08/13 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
python三引号输出方法
2019/02/27 Python
简单介绍python封装的基本知识
2019/08/10 Python
django ajax发送post请求的两种方法
2020/01/05 Python
详解anaconda安装步骤
2020/11/23 Python
详解Open Folder as PyCharm Project怎么添加的方法
2020/12/29 Python
CSS3效果:自定义“W”形运行轨迹实例
2017/03/29 HTML / CSS
意大利综合购物网站:Giordano Shop
2016/10/21 全球购物
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
台湾良兴购物网:EcLife
2019/12/01 全球购物
关于应聘教师的自荐信
2016/01/28 职场文书
Spring Boot项目如何优雅实现Excel导入与导出功能
2022/06/10 Java/Android