案例一:

 <?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的更多相关文章

  1. php 函数preg_match、preg_match_all ,以及正则表达式规则

    <?php $str = 'php is the best language phhhhp is'; $part = '/ph{1,}p/'; echo preg_match($part, $s ...

  2. PHP 正则表达式匹配 preg_match 与 preg_match_all 函数

    --http://www.5idev.com/p-php_preg_match.shtml 正则表达式在 PHP 中的应用 在 PHP 应用中,正则表达式主要用于: 正则匹配:根据正则表达式匹配相应的 ...

  3. PHP 正则表达式匹配函数 preg_match 与 preg_match_all

    preg_match() preg_match() 函数用于进行正则表达式匹配,成功返回 1 ,否则返回 0 . 语法: 1 int preg_match( string pattern, strin ...

  4. preg_match 与 preg_match_all 函数示例详解

    正则表达式在 PHP 中的应用 在 PHP 应用中,正则表达式主要用于: 正则匹配:根据正则表达式匹配相应的内容 正则替换:根据正则表达式匹配内容并替换 正则分割:根据正则表达式分割字符串 在 PHP ...

  5. php preg_match 和preg_match_all

    $h3=trim('[我要变强][主流程]整体功能测试点');$matches=array();preg_match_all('/[(.+?)]/', $h3,$matches); print_r($ ...

  6. php中函数preg_match或preg_match_all 第三个参数$match的解释

    理解自:http://www.cnblogs.com/vicenteforever/articles/1623137.html php手册中是这样解释的 matches 如果提供了参数matches, ...

  7. JavaScript与PHP中正则

    一.JavaScript 有个在线调试正则的工具,点击查看工具.下面的所有示例代码,都可以在codepen上查看到. 1.创建正则表达式 var re = /ab+c/; //方式一 正则表达式字面量 ...

  8. php 正则表达式的使用

    要点:php正则表达式要用双引号,且要用“/ /”斜线做开始结束. 1.preg_match . preg_match_all 两者的区别:第一次匹配成功后就会停止匹配,如果要实现全部结果的匹配,即搜 ...

  9. 最常用的PHP正则表达式收集整理

    最常用的PHP正则表达式收集整理 提交 我的评论 加载中 已评论 最常用的PHP正则表达式收集整理 2015-03-20 PHP100中文网 PHP100中文网 PHP100中文网 微信号 功能介绍 ...

随机推荐

  1. 寻找最大的K个数(下)

    接着昨天的写,里面的代码包含昨天的 #include <iostream> using namespace std; #define N 50 //初始化数组 , , , , , , , ...

  2. HTML5 Canvas之猜数字游戏

    主要的内容描述的是如何渲染一个矩形的边框和填充背景,以及文字. 代码中有详细的注释: 效果图: 以下是代码: <!DOCTYPE html> <html lang="cn& ...

  3. 7、Docker Container

    7.1 什么是Container 通过image创建(copy) 在Image layer之上建立一个Container layer(可读写) 类比面向对象:类和实例 Image负责APP的存储和分发 ...

  4. [label][JavaScript][The Defined Guide of JavaScript] 变量的作用域

    变量的作用域 一个变量的作用域(scope)是程序中定义这个变量的区域. 全局(global)变量的作用域(scope)是全局性的,即在JavaScript代码中,它处处都有定义.    而在函数之内 ...

  5. unity shader序列帧动画代码,顺便吐槽一下unity shader系统

    一.看到UNITY论坛里有些人求unity shader序列帧动画,写shader我擅长啊,就顺势写了个CG的shader.代码很简单,就是变换UV采样序列帧贴图,美术配置行数列数以及变换速度. Sh ...

  6. JDBC 中 socketTimeout 的作用

    如果我们把socketTimeout设置如下: socketTimeout=60000; 这意味着60秒以内服务器必须开始给客户端吐数据,以保持socket的活性.配置成60秒,一般查询都不会遇到问题 ...

  7. nancy中的身份验证

    在nancy中,身份验证分为basic ,form ,token,stateless几种,basic和form这里不说了,其中如果是使用cookie来保存身份的, 需要注意的是:cookie有大小的限 ...

  8. mysql设定或修改密码的三个方法

    为用户设定密码: 1.mysql>SET PASSWORD FOR 'USERNAME'@'HOST'=PASSWORD('password'); 2.# mysqladmin -uUSERNA ...

  9. Luogu4551 最长异或路径

    题目链接:戳我 emmmmmmmmmm异或一个数两次等于没有操作对吧...所以我们按照前缀的异或和,建一个01trie.....然后之后.....直接在树上贪心地找能和它每一位不一样的数....然后. ...

  10. 如何成功导入SlidingMenu库?

    SlidingMenu是一个开源的侧滑菜单(https://github.com/jfeinstein10/SlidingMenu).  为大家的安卓程序提供侧滑菜单,这个功能也非常有用. 要想正常使 ...