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 之 没有mysql支持时的替代方案
Oct 09 PHP
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
Nov 18 PHP
无法载入 mcrypt 扩展,请检查 PHP 配置终极解决方案
Jul 18 PHP
php 操作符与控制结构
Mar 07 PHP
php生成略缩图代码
Jul 16 PHP
浏览器关闭后,能继续执行的php函数(ignore_user_abort)
Aug 01 PHP
php抓取并保存网站图片的实现代码
Oct 28 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
Jun 30 PHP
PHP实现APP微信支付的实例讲解
Feb 10 PHP
Laravel框架中缓存的使用方法分析
Sep 06 PHP
php的RSA加密解密算法原理与用法分析
Jan 23 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
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
2014/06/06 PHP
PHP和C#可共用的可逆加密算法详解
2015/10/26 PHP
网页的分页下标生成代码(PHP后端方法)
2016/02/03 PHP
Laravel日志用法详解
2016/10/09 PHP
PHP脚本自动识别验证码查询汽车违章
2016/12/20 PHP
PHP实现根据数组某个键值大小进行排序的方法
2018/03/13 PHP
php中错误处理操作实例分析
2019/08/23 PHP
PHP代码覆盖率统计详解
2020/07/22 PHP
MooTools 1.2中的Drag.Move来实现拖放
2009/09/15 Javascript
常用Extjs工具:Extjs.util.Format使用方法
2012/03/22 Javascript
javascript获取form里的表单元素的示例代码
2014/02/14 Javascript
node+express+ejs制作简单页面上手指南
2014/11/26 Javascript
使用javascript插入样式
2016/03/14 Javascript
值得分享的轻量级Bootstrap Table表格插件
2016/05/30 Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
2017/02/23 Javascript
基于AngularJS的简单使用详解
2017/09/10 Javascript
利用jqprint插件打印页面内容的实现方法
2018/01/09 Javascript
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
2018/08/24 Javascript
微信小程序实现文字无限轮播效果
2018/12/28 Javascript
解决layer.confirm选择完之后消息框不消失的问题
2019/09/16 Javascript
[01:17]Ti4 循环赛第一日回顾
2014/07/11 DOTA
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
三步实现Django Paginator分页的方法
2019/06/11 Python
django云端留言板实例详解
2019/07/22 Python
python 一篇文章搞懂装饰器所有用法(建议收藏)
2019/08/23 Python
python用quad、dblquad实现一维二维积分的实例详解
2019/11/20 Python
python调用c++返回带成员指针的类指针实例
2019/12/12 Python
Python tkinter布局与按钮间距设置方式
2020/03/04 Python
凯特·丝蓓英国官网:Kate Spade英国
2016/11/07 全球购物
台湾乐天市场:日本No.1的网路购物网站
2017/03/22 全球购物
企业委托书范本
2014/09/13 职场文书
党员批评与自我批评发言材料
2014/10/14 职场文书
2015年反洗钱工作总结
2015/04/25 职场文书
2015年统战工作总结
2015/05/19 职场文书
幼儿园托班教育随笔
2015/08/14 职场文书
css如何把元素固定在容器底部的四种方式
2022/06/16 HTML / CSS