php中的PCRE 函数,正则表达式处理函数。
有时候在一些特定的业务场景中需要匹配,或者提取一些关键的信息,例如匹配网页中的一些链接,
提取一些数据时,可能会用到正则匹配。
下面介绍一下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">首页</a>
<a href="category.php?id=3">GSM手机</a>
<a href="category.php?id=4">双模手机</a>
<a href="category.php?id=6">手机配件</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] => ,
) )
详细版请参考:https://www.cnblogs.com/yafei236/p/4168290.html
php中的PCRE 函数,正则表达式处理函数。的更多相关文章
- 在C语言中利用PCRE实现正则表达式
1. PCRE简介 2. 正则表达式定义 3. PCRE正则表达式的定义 4. PCRE的函数简介 5. 使用PCRE在C语言中实现正则表达式的解析 6. PCRE函数在C语言中的使用小例子 1. P ...
- PHP中有关正则表达式的函数集锦
之前学正则表达式的目的是想从网上抓取点小说啊,文档啊,还有获取相应的视频连接然后批量下载.当时初学PHP根本不知道PHP有专门抓包的工具,就像Simple_html_dom.php(在我的其他博文中有 ...
- ORACLE中的支持正则表达式的函数
ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与INSTR的功能相似3,REGEXP_SUBSTR :与SUBS ...
- PCRE兼容正则表达式函数
1.preg_grep()函数 函数语法: array preg_grep ( string pattern, array input ) 函数功能: 使用数组input中的元素一一匹配表达式patt ...
- python中,有关正则表达式re函数:compile、match、search、findall
1.全局匹配函数 re.compile(pattern=pattern,re.S).findall(text)函数: compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象.该对 ...
- PHP 正则表达式常用函数使用小结
在PHP中有两套正则表达式函数库.一套是由PCRE(Perl Compatible Regular Expression)库提供的.PCRE库使用和Perl相同的语法规则实现了正则表达式的模式匹配,其 ...
- Oracle 支持正则表达式的函数
内容提要 oracle 10g 增加的正则表达式函数有以下四种: regexp_like() --返回满足条件的字段 regexp_instr() --返回满足条件的字符或字符串的位置 regexp_ ...
- JS中exec函数与match函数的区别与联系
总结: 正则规则的声明,两种方法: exec是RegExp类的匹配方法 match是字符串类的匹配方法 var reg = /aaa/g; var reg = new RegExp("aaa ...
- Python常用的正则表达式处理函数
Python常用的正则表达式处理函数 正则表达式是一个特殊的字符序列,用于简洁表达一组字符串特征,检查一个字符串是否与某种模式匹配,使用起来十分方便. 在Python中,我们通过调用re库来使用re模 ...
- 关于Python正则表达式findall函数问题详解
关于Python正则表达式 findall函数问题详解 在写正则表达式的时候总会遇到不少的问题, 特别是在表达式有多个元组的时候.下面看下re模块下的findall()函数和多个表达式元组相遇的时候会 ...
随机推荐
- EasyDSS RTMP流媒体服务器web前端:vue组件之间的传值,父组件向子组件传值
之前接触最多的都是EasyNVR,主要针对的都是前端的一些问题.也有接触到一些easydss流媒体服务器. 前端方面的,EasyDSS流媒体服务器与EasyNVR有着根本的不同.EasyNVR使用的是 ...
- Project Structure 讲解(转)
项目的左侧面板 项目设置->Project Project Settings -> Modules Sources面板 Paths面板 dependencies面板 Project Set ...
- An Overview of Query Optimization in Relational Systems
An Overview of Query Optimization in Relational Systems
- 我的Java开发学习之旅------>Java经典排序算法之冒泡排序
冒泡排序(Bubble Sort)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已 ...
- AndroidUI组件之ImageSwitcher
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/gc_gongchao/article/details/25594669 今天继续AndroidUI组 ...
- testng ITestListener使用
ITestListener适用场景 当使用testng执行测试时,我们常会想在某个阶段做一些特别的处理,比如:测试成功结束后,测试失败后,跳过某个脚本后,全部脚本执行完毕后.要想达成这个目标,我们需要 ...
- vue-cookies、极验滑动验证geetest、vue-router的导航守卫
一 . vue-cookies 参考文档简书:https://www.jianshu.com/p/535b53989b39 参考文档npm:https://www.npmjs.com/package/ ...
- ZOJ - 4016 Mergeable Stack 【LIST】
题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4016 题意 模拟栈的三种操作 第一种 push 将指定元素压入指 ...
- AnkhSVN
安装和配置 签入签出问题 1.安装和配置 ①安装.(貌似默认的安装到C:\Program Files\AnkhSVN 2下,开始菜单也没快捷?) ②源代码管理器设置:打开vs2012,工具→选项→源代 ...
- 一次跨域请求出现 OPTIONS 请求的问题及解决方法
问题背景浏览器从一个域名的网页去请求另一个域名的资源时,域名.端口.协议任一不同,都是跨域 在前后端开发过程经常会遇到跨域问题.网上也都有解决方案. 写这篇文章时,我们碰到的一个场景是:要给s系统做一 ...