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 10 PHP
解析dedecms空间迁移步骤详解
May 15 PHP
PHP获取php,mysql,apche的版本信息示例代码
Jan 16 PHP
PHP编写简单的App接口
Aug 28 PHP
PHP  实现等比压缩图片尺寸和大小实例代码
Oct 08 PHP
10个值得深思的PHP面试题
Nov 14 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
Aug 02 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
Oct 12 PHP
Nginx+php配置文件及原理解析
Dec 09 PHP
PHP7 list() 函数修改
Mar 09 PHP
Laravel中Kafka的使用详解
Mar 24 PHP
用php如何解决大文件分片上传问题
Jul 07 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
获得Google PR值的PHP代码
2007/01/28 PHP
php学习之 数组声明
2011/06/09 PHP
destoon二次开发常用数据库操作
2014/06/21 PHP
php 输出json及显示json中的中文汉字详解及实例
2016/11/09 PHP
PHP获取文本框、密码域、按钮的值实例代码
2017/04/19 PHP
PHP实现登录注册之BootStrap表单功能
2017/09/03 PHP
laravel 实现根据字段不同值做不同查询
2019/10/23 PHP
php使用Swoole实现毫秒级定时任务的方法
2020/09/04 PHP
asp.net HttpHandler实现图片防盗链
2009/11/09 Javascript
jQuery Tools tooltip使用说明
2012/07/14 Javascript
Three.js源码阅读笔记(Object3D类)
2012/12/27 Javascript
在Javascript中 声明时用&quot;var&quot;与不用&quot;var&quot;的区别
2013/04/15 Javascript
js禁止回车提交表单的示例代码
2013/12/23 Javascript
javascript面向对象之定义成员方法实例分析
2015/01/13 Javascript
JQuery实现动态适时改变字体颜色的方法
2015/03/10 Javascript
JS阻止事件冒泡行为和闭包的方法
2016/06/16 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
Angular 4 指令快速入门教程
2017/06/07 Javascript
解决IE7中使用jQuery动态操作name问题
2017/08/28 jQuery
详解小程序BackgroundAudioManager踩坑之旅
2019/12/08 Javascript
jQuery使用jsonp实现百度搜索的示例代码
2020/07/08 jQuery
[01:33]DOTA2上海特级锦标赛 LIQUID战队完整宣传片
2016/03/16 DOTA
python发送邮件的实例代码(支持html、图片、附件)
2013/03/04 Python
在Python下利用OpenCV来旋转图像的教程
2015/04/16 Python
python实现批量监控网站
2016/09/09 Python
如何在Anaconda中打开python自带idle
2020/09/21 Python
Python用Jira库来操作Jira
2020/12/28 Python
PyCharm2020.3.2安装超详细教程
2021/02/08 Python
基于HTML5代码实现折叠菜单附源码下载
2015/11/27 HTML / CSS
Schutz鞋官方网站:Schutz Shoes
2017/12/13 全球购物
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
安全承诺书范文
2014/03/26 职场文书
党委班子剖析材料
2014/08/21 职场文书
自动化专业大学生职业生涯规划范文:爱拚才会赢
2014/09/12 职场文书
信用卡结清证明怎么写
2014/09/13 职场文书
1000字打架检讨书
2014/11/03 职场文书