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 木马攻击防御技巧
Jun 13 PHP
纯真IP数据库的应用 IP地址转化成十进制
Jun 14 PHP
PHP程序开发范例学习之表单 获取文本框的值
Aug 08 PHP
php中判断字符串是否全是中文或含有中文的实现代码
Sep 16 PHP
destoon数据库表说明汇总
Jul 15 PHP
PHP中使用虚代理实现延迟加载技术
Nov 05 PHP
php连接oracle数据库及查询数据的方法
Dec 29 PHP
PHP callback函数使用方法和注意事项
Jan 23 PHP
php获取当前url地址的方法小结
Jan 10 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
Jul 31 PHP
Laravel中validation验证 返回中文提示 全局设置的方法
Sep 29 PHP
laravel 根据不同组织加载不同视图的实现
Oct 14 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无限分类代码,支持数组格式化、直接输出菜单两种方式
2011/05/18 PHP
YII Framework框架教程之使用YIIC快速创建YII应用详解
2016/03/15 PHP
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
2016/04/20 PHP
PHP获取用户客户端真实IP的解决方案
2016/10/10 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
combox改进版 页面原型参考dojo的,比网上jQuery的那些combox功能强,代码更小
2010/04/15 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
IE浏览器IFrame对象内存不释放问题解决方法
2014/08/22 Javascript
JavaScript中判断整数的多种方法总结
2014/11/08 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
javascript作用域链(Scope Chain)用法实例解析
2015/11/30 Javascript
d3.js入门教程之数据绑定详解
2017/04/28 Javascript
Angularjs的键盘事件的绑定
2017/07/27 Javascript
原生js实现仿window10系统日历效果的实例
2017/10/31 Javascript
基于vue-resource jsonp跨域问题的解决方法
2018/02/03 Javascript
JavaScript如何对图片进行黑白化
2018/04/10 Javascript
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
2015/05/09 Python
Python常用小技巧总结
2015/06/01 Python
Python基于回溯法子集树模板解决最佳作业调度问题示例
2017/09/08 Python
python 获取当天每个准点时间戳的实例
2018/05/22 Python
pandas pivot_table() 按日期分多列数据的方法
2018/11/16 Python
python 批量添加的button 使用同一点击事件的方法
2019/07/17 Python
解决python Jupyter不能导入外部包问题
2020/04/15 Python
Python字符串格式化f-string多种功能实现
2020/05/07 Python
意大利奢侈品多品牌集合店:TheDoubleF
2019/08/24 全球购物
英国DVD和蓝光碟片购买网站:Zoom.co.uk(电影和电视)
2019/09/23 全球购物
大学毕业后的十年规划
2014/01/07 职场文书
高中运动会广播稿
2014/01/21 职场文书
工地安全标语
2014/06/07 职场文书
社区平安建设汇报材料
2014/08/14 职场文书
机关作风整顿个人整改措施2014
2014/09/17 职场文书
优秀党务工作者先进事迹材料
2014/12/25 职场文书
入党转正介绍人意见
2015/06/03 职场文书
CSS3 制作精美的定价表
2021/04/06 HTML / CSS
CSS3 制作的彩虹按钮样式
2021/04/11 HTML / CSS
Tomcat starup.bat 脚本实现开机自启动
2022/04/20 Servers