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开发中的中文编码问题
Aug 08 PHP
php判断字符串在另一个字符串位置的方法
Feb 27 PHP
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
May 04 PHP
ThinkPHP中关联查询实例
Dec 02 PHP
PHP异常处理Exception类
Dec 11 PHP
PHP模糊查询的实现方法(推荐)
Sep 06 PHP
PHP基于递归实现的约瑟夫环算法示例
Aug 27 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
Sep 22 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
Dec 21 PHP
PHP registerXPathNamespace()函数讲解
Feb 03 PHP
Yii框架实现对数据库的CURD操作示例
Sep 03 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
二次元帅气男生排行榜,只想悄悄收藏系列
2020/03/04 日漫
谈谈PHP语法(5)
2006/10/09 PHP
教你如何把一篇文章按要求分段
2006/10/09 PHP
php过滤HTML标签、属性等正则表达式汇总
2014/09/22 PHP
PHP socket 模拟POST 请求实例代码
2016/07/18 PHP
Laravel实现autoload方法详解
2017/05/07 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
jquery入门—数据删除与隔行变色以及图片预览
2013/01/07 Javascript
JS cookie中文乱码解决方法
2014/01/28 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
2014/06/11 Javascript
jQuery中prependTo()方法用法实例
2015/01/08 Javascript
jQuery插件echarts去掉垂直网格线用法示例
2017/03/03 Javascript
基于vue打包后字体和图片资源失效问题的解决方法
2018/03/06 Javascript
Angular5中调用第三方库及jQuery的添加的方法
2018/06/07 jQuery
element-ui 本地化使用教程详解
2019/10/28 Javascript
[36:29]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs TNC
2018/04/02 DOTA
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
python3读取MySQL-Front的MYSQL密码
2017/05/03 Python
Python3实现的判断环形链表算法示例
2019/03/07 Python
Python Opencv实现单目标检测的示例代码
2020/09/08 Python
html特殊符号示例 html特殊字符编码对照表
2014/01/14 HTML / CSS
贝佳斯官方网站:Borghese
2020/05/08 全球购物
澳大利亚美容产品及化妆品在线:Activeskin
2020/06/03 全球购物
请介绍一下WSDL的文档结构
2013/03/17 面试题
自荐书范文
2013/12/08 职场文书
大学自荐信
2013/12/12 职场文书
新学期红领巾广播稿
2014/01/14 职场文书
小学生秋游活动方案
2014/02/23 职场文书
《奇妙的国际互联网》 教学反思
2014/02/25 职场文书
汉语言文学专业自荐信
2014/06/11 职场文书
反四风个人对照检查材料
2014/09/26 职场文书
学习保证书100字
2015/02/26 职场文书
幸福来敲门观后感
2015/06/04 职场文书
生产车间管理制度
2015/08/04 职场文书
在Python中如何使用yield
2021/06/07 Python
为什么RedisCluster设计成16384个槽
2021/09/25 Redis