preg_match 与 preg_match_all
案例一:
<?php $str = 'abcdef123456';
preg_match('/[a-z1-9]+/', $str, $res);
var_dump($res); preg_match('/([a-z1-9])+/', $str, $res);
var_dump($res); preg_match('/(\w)+/', $str, $res);
var_dump($res);
-------------------------------------------以上3个正则分别输出:
array() {
[]=>
string() "abcdef123456"
}
array() {
[]=>
string() "abcdef123456"
[]=>
string() ""
}
array() {
[]=>
string() "abcdef123456"
[]=>
string() ""
}
------------------------------------------- preg_match_all('/[a-z1-9]+/', $str, $res);
var_dump($res); preg_match_all('/([a-z1-9])+/', $str, $res);
var_dump($res); preg_match_all('/(\w)+/', $str, $res);
var_dump($res);
-------------------------------------------以上3个正则分别输出
array() {
[]=>
array() {
[]=>
string() "abcdef123456"
}
}
array() {
[]=>
array() {
[]=>
string() "abcdef123456"
}
[]=>
array() {
[]=>
string() ""
}
}
array() {
[]=>
array() {
[]=>
string() "abcdef123456"
}
[]=>
array() {
[]=>
string() ""
}
}
-------------------------------------------
此处拿preg_match 与 preg_match_all 说明 \w [] () 不同表达方式下,匹配的结果异同
案例二:
<?php $str = 'qwe.123.asd.456';
preg_match('/([a-z]+)\.([1-9]+)\.([a-z]+)\.([1-9]+)/', $str, $res);
var_dump($res); preg_match_all('/([a-z]+)\.([1-9]+)\.([a-z]+)\.([1-9]+)/', $str, $res);
var_dump($res);
-------------------------分别输出 array() {
[]=>
string() "qwe.123.asd.456"
[]=>
string() "qwe"
[]=>
string() ""
[]=>
string() "asd"
[]=>
string() ""
}
array() {
[]=>
array() {
[]=>
string() "qwe.123.asd.456"
}
[]=>
array() {
[]=>
string() "qwe"
}
[]=>
array() {
[]=>
string() ""
}
[]=>
array() {
[]=>
string() "asd"
}
[]=>
array() {
[]=>
string() ""
}
}
-------------------------- $str = 'qwe.123.asd.456';
preg_match('/([a-z])+\.([1-9])+\.([a-z])+\.([1-9])+/', $str, $res);
var_dump($res); preg_match_all('/([a-z])+\.([1-9])+\.([a-z])+\.([1-9])+/', $str, $res);
var_dump($res);
------------------------分别输出 array() {
[]=>
string() "qwe.123.asd.456"
[]=>
string() "e"
[]=>
string() ""
[]=>
string() "d"
[]=>
string() ""
}
array() {
[]=>
array() {
[]=>
string() "qwe.123.asd.456"
}
[]=>
array() {
[]=>
string() "e"
}
[]=>
array() {
[]=>
string() ""
}
[]=>
array() {
[]=>
string() "d"
}
[]=>
array() {
[]=>
string() ""
}
}
上面2个案例,是为更好理解第三个案例.
案例三:
preg_match与preg_match_all区别: 前者匹配成功后就放弃后续匹配; 后者第一次匹配成功后,继续匹配到结尾.
preg_match_all涉及2种匹配方式.官方文档解释如下,int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )
PREG_PATTERN_ORDER:结果排序为$matches[0]保存完整模式的所有匹配, $matches[1] 保存第一个子组的所有匹配, 以此类推.
PREG_SET_ORDER:结果排序为$matches[0]包含第一次匹配得到的所有匹配(包含子组), $matches[1]是包含第二次匹配到的所有匹配(包含子组)的数组, 以此类推.
<?php $str = '111-222;333-444';
preg_match('/([1-9]+)-([1-9]+)/', $str, $res);
var_dump($res); preg_match_all('/([1-9]+)-([1-9]+)/', $str, $res);//默认是PREG_PATTERN_ORDER 方式匹配
var_dump($res); preg_match_all('/([1-9]+)-([1-9]+)/', $str, $res, PREG_SET_ORDER);//再看PREG_SET_ORDER 方式匹配
var_dump($res);
---------------------------------以上3个正则输出 array() {
[]=>
string() "111-222"
[]=>
string() ""
[]=>
string() ""
}
array() {
[]=>
array() {
[]=>
string() "111-222"
[]=>
string() "333-444"
}
[]=>
array() {
[]=>
string() ""
[]=>
string() ""
}
[]=>
array() {
[]=>
string() ""
[]=>
string() ""
}
}
array() {
[]=>
array() {
[]=>
string() "111-222"
[]=>
string() ""
[]=>
string() ""
}
[]=>
array() {
[]=>
string() "333-444"
[]=>
string() ""
[]=>
string() ""
}
}
preg_match 与 preg_match_all的更多相关文章
- php 函数preg_match、preg_match_all ,以及正则表达式规则
<?php $str = 'php is the best language phhhhp is'; $part = '/ph{1,}p/'; echo preg_match($part, $s ...
- PHP 正则表达式匹配 preg_match 与 preg_match_all 函数
--http://www.5idev.com/p-php_preg_match.shtml 正则表达式在 PHP 中的应用 在 PHP 应用中,正则表达式主要用于: 正则匹配:根据正则表达式匹配相应的 ...
- PHP 正则表达式匹配函数 preg_match 与 preg_match_all
preg_match() preg_match() 函数用于进行正则表达式匹配,成功返回 1 ,否则返回 0 . 语法: 1 int preg_match( string pattern, strin ...
- preg_match 与 preg_match_all 函数示例详解
正则表达式在 PHP 中的应用 在 PHP 应用中,正则表达式主要用于: 正则匹配:根据正则表达式匹配相应的内容 正则替换:根据正则表达式匹配内容并替换 正则分割:根据正则表达式分割字符串 在 PHP ...
- php preg_match 和preg_match_all
$h3=trim('[我要变强][主流程]整体功能测试点');$matches=array();preg_match_all('/[(.+?)]/', $h3,$matches); print_r($ ...
- php中函数preg_match或preg_match_all 第三个参数$match的解释
理解自:http://www.cnblogs.com/vicenteforever/articles/1623137.html php手册中是这样解释的 matches 如果提供了参数matches, ...
- JavaScript与PHP中正则
一.JavaScript 有个在线调试正则的工具,点击查看工具.下面的所有示例代码,都可以在codepen上查看到. 1.创建正则表达式 var re = /ab+c/; //方式一 正则表达式字面量 ...
- php 正则表达式的使用
要点:php正则表达式要用双引号,且要用“/ /”斜线做开始结束. 1.preg_match . preg_match_all 两者的区别:第一次匹配成功后就会停止匹配,如果要实现全部结果的匹配,即搜 ...
- 最常用的PHP正则表达式收集整理
最常用的PHP正则表达式收集整理 提交 我的评论 加载中 已评论 最常用的PHP正则表达式收集整理 2015-03-20 PHP100中文网 PHP100中文网 PHP100中文网 微信号 功能介绍 ...
随机推荐
- HRBUST1313 火影忍者之~静音 2017-03-06 16:11 39人阅读 评论(0) 收藏
火影忍者之-静音 传说中的火之国一年一度的公务员选拔又开始了!木叶忍者村此次也要从中选拔出5人来,作为即将上任的新火影纲手的小弟-,可是报考公务员的人数实在是太--多啦!所以纲手的贴身随从-静音小姐, ...
- zabbix监控cpu jumps
cpu监控图形分为三种 cpu jumps cpu突发 包含 context switches per second 进程线程切换 interrupts per second 每秒的中断次数 cpu ...
- 看懂gc日志
使用的是:+PrintGCDetails -XX:+PrintGCTimeStamps 输出的日志格式: [Times: user=0.03 sys=0.00, real=0.01 secs] 363 ...
- 使用NPOI时ICSharpCode.SharpZipLib版本冲突问题解决
系统原来引用的ICSharpCode.SharpZipLib是0.84版本的, 添加了2.3版本的NPOI引用后,报版本冲突错误,因为NPOI用的ICSharpCode.SharpZipLib是0.8 ...
- VisualStudio2017 远程 调试 IIS 服务器 web网站
小伙伴们,本次测试好好的程序发布到服务器挂到IIS后我勒个*,,, 神马情况,为啥和我本地运行结果不一致,Fuc*... 没遇到的小伙伴估计也看不到此篇文章了吧,Log日志调试,嗯 不错,good i ...
- C语言--第0次作业;
第零次作业 1.你对网络专业或者计算机专业了解是怎样? 在高考之前,我就确定了自己的大学专业将会选择计算机方面.我认为计算机专业就业前景比较好,计算机行业发展也非常快,学科实践与创新能力也比较强,在当 ...
- GO学习笔记 - 函数名前面是否有输入参数肯定是不一样的!!
在刚接触GO语言时候,我相信你也会有这种困惑,为什么有的函数名前面有输入参数,而一些却没有,它们是否有差别?确实有差别,没有输入参数,是一般的函数:有输入参数,是结构的方法,输入参数叫做“方法接收者” ...
- DOS文件操作命令
内部命令 COPY---文件固执命令 格式:COPY [源盘:][路径]<源文件名> [目标盘][路径]<目标文件名> 拷贝一个或多个文件到指定盘上 1)COPY是文件对文件的 ...
- 2018-2019-2 网络对抗技术 20165219 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165219 Exp3 免杀原理与实践 实验任务 1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用sh ...
- ElasticSearch速学 - IK中文分词器远程字典设置
前面已经对”IK中文分词器“有了简单的了解: 但是可以发现不是对所有的词都能很好的区分,比如: 逼格这个词就没有分出来. 词库 实际上IK分词器也是根据一些词库来进行分词的,我们可以丰富这个词库. ...