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中文网 微信号 功能介绍 ...
随机推荐
- (简单的物理题)Bungee Jumping
链接: http://acm.hdu.edu.cn/showproblem.php?pid=1155 Time Limit: 2000/1000 MS (Java/Others) Memory ...
- Appium之打开应用时提示框处理
当打开一个应用时,会有一个无关紧要的提示框,如果要继续操作,需要先关闭提示框,如下图(如新用户福利提示): 此时,如果你直接用Appium inspector或者Android uiautomator ...
- [label][phalcon] How to install Phalcon extension for Zend Server 6.3.0 for windows 7 64bit
At first , you should download Phalcon DLL file. You can download from this link under. http://stati ...
- day 20 02 模块的导入
day 20 02 模块的导入 1.模块:就是一个文件:放置一些通用的有独立功能程序或者函数.比如建立一个py文件,文件名为:demo,文件里面的内容:demo模块: print('嗨大米')def ...
- 谈谈INotifyPropertyChanged和ICommand
WPF,Windows8和Windows Phone开发中的MVVM设计模式中很重要的两个接口是INotifyPropertyChanged和ICommand,深入理解这两个接口的原理,并掌握其正确的 ...
- 【cocos2d-x 手游研发----博彩大转盘】
博彩大转盘,转盘抽奖的小系统,这是一个很有意思的游戏模块,游戏中增加这样一些趣味的小模块,我会附上源码: 会增进玩家的粘性,每天都想来抽两把试试手气: 我做的这个是个矩形风格的转盘,不是那种圆形的转盘 ...
- python网络编程--操作系统介绍
1.操作系统介绍 操作系统位于计算机硬件与应用软件之间,本质也是一个软件.操作系统由操作系统的内核(运行于内核态,管理硬件资源)以及系统调用(运行于用户态,为应用程序员写的应用程序提供系统调用接口)两 ...
- Android 的文档翻译
https://www.cnblogs.com/Xiegg/p/3428529.html -------->media codec的文档翻译
- SoundPool在使用
Button playButton; SoundPool sp; int soundID_1,soundID_2; int streamID_1,streamID_2; @Override prot ...
- “全栈2019”Java第九十九章:局部内部类与继承详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...