案例一:

 <?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. Web Service Error wsse:InvalidSecurity Policy Requires Integrity (Doc ID 1370736.1)

        Web Service Error wsse:InvalidSecurity Policy Requires Integrity (Doc ID 1370736.1) Modified: 13 ...

  2. Lucene4:获取中文分词结果,根据文本计算boost

    1. 要求 环境: Lucene 4.1版本/IKAnalyzer 2012 FF版本/mmseg4j 1.9版本 实现功能: 1).给定输入文本,获取中文拆分词结果:2).给定输入文本,对该文本按一 ...

  3. python面试题之如何计算一个字符串的长度

    在我们想计算长度的字符串上调用函数len()即可 >>> len('hhhhhhhhjg') 10 所属网站分类: 面试经典 > python 作者:外星人入侵 链接:http ...

  4. [zepto]源码学习

    $() : zepto选择器,与jquery选择器类似,但是不支持jquery的拓展css支持(:first,:eq,:last...) $("div")选择页面内的全部div元素 ...

  5. Python验证实现登陆功能以及用户锁定(文件存储)

    废话不多说先交代码(只是一个简单的验证):#!/usr/bin/env python #-*- coding:utf8 -*- # Structured program ‘#’是注释 # Functi ...

  6. 纸壳CMS的插件加载机制

    纸壳CMS是一个开源的可视化设计CMS,通过拖拽,在线编辑的方式来创建网站. GitHub https://github.com/SeriaWei/ZKEACMS.Core 欢迎Star,Fork,发 ...

  7. sharepoint 版本信息查看

    #检查版本:# PowerShell script to display SharePoint products from the registry. Param( # decide on wheth ...

  8. sharepoint 2007 log track

    1. 以管理员权限运行CMD 2. 运行命令: NOTEPAD c:\windows\system32\drivers\etc\hosts 3. 在打开的记事本中最后一行添加一条记录后保存.     ...

  9. 索引+sql优化

    索引的概念: 索引是提高查询速度的一种手段.索引有很多种,以下是索引树的结构 要求查询出薪资大于5000的雇员信息,只要在树中找到5000的节点,直接查询该节点右边的数据即可,左边就不用管了,这样提高 ...

  10. django系列5.2--ORM数据库的单表操作

    单表操作 在views.py中添加对数据库的操作语句 #在逻辑代码中导入你要操作的表 from app import models def add_book(request): ''' 添加表记录 : ...