位置: 编程技术 - 正文

PHP:preg_match_all()的用法_PCRE正则函数

编辑:rootadmin
preg_match_all

推荐整理分享PHP:preg_match_all()的用法_PCRE正则函数,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

(PHP 4, PHP 5)

preg_match_all — 执行一个全局正则表达式匹配

说明 int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )

搜索subject中所有匹配pattern给定正则表达式 的匹配结果并且将它们以flag指定顺序输出到matches中.

在第一个匹配找到后, 子序列继续从最后一次匹配位置搜索.

参数

pattern

要搜索的模式,字符串形式。

subject

输入字符串。

matches

多维数组,作为输出参数输出所有匹配结果, 数组排序通过flags指定。

flags

可以结合下面标记使用(注意不能同时使用PREG_PATTERN_ORDER和 PREG_SET_ORDER):PREG_PATTERN_ORDER

结果排序为$matches[0]保存完整模式的所有匹配, $matches[1] 保存第一个子组的所有匹配,以此类推。

<?phppreg_match_all("|<[^>]+>(.*)</[^>]+>|U","<b>example:</b><divalign=left>thisisatest</div>",$out,PREG_PATTERN_ORDER);echo$out[0][0].",".$out[0][1]."n";echo$out[1][0].",".$out[1][1]."n";?>

以上例程会输出:

因此, $out[0]是包含匹配完整模式的字符串的数组, $out[1]是包含闭合标签内的字符串的数组。

PREG_SET_ORDER

结果排序为$matches[0]包含第一次匹配得到的所有匹配(包含子组), $matches[1]是包含第二次匹配到的所有匹配(包含子组)的数组,以此类推。<?phppreg_match_all("|<[^>]+>(.*)</[^>]+>|U","<b>example:</b><divalign="left">thisisatest</div>",$out,PREG_SET_ORDER);echo$out[0][0].",".$out[0][1]."n";echo$out[1][0].",".$out[1][1]."n";?>

以上例程会输出:

PREG_OFFSET_CAPTURE PHP:preg_match_all()的用法_PCRE正则函数

如果这个标记被传递,每个发现的匹配返回时会增加它相对目标字符串的偏移量。 注意这会改变matches中的每一个匹配结果字符串元素,使其 成为一个第0个元素为匹配结果字符串,第1个元素为 匹配结果字符串在subject中的偏移量。

如果没有给定排序标记,假定设置为PREG_PATTERN_ORDER。

offset

通常, 查找时从目标字符串的开始位置开始。可选参数offset用于 从目标字符串中指定位置开始搜索(单位是字节)。

Note:

使用 offset 参数不同于传递 substr($subject, $offset) 的 结果到 preg_match_all() 作为目标字符串,因为 pattern 可以包含断言比如^, $ 或者 (?<=x) 。 示例查看 preg_match()。

返回值

返回完整匹配次数(可能是0),或者如果发生错误返回FALSE。

更新日志

版本 说明 5.4.0 参数matches成为可选的。 5.3.6 如果 offset 大于 subject 的程度,将返回 FALSE。 5.2.2 子命名分组语法可以接受(?<name>),(?&#;name&#;)以及 (?P<name>)了。 之前版本仅接受(?P<name>)方式。 4.3.3 增加了offset参数。 4.3.0 增加了PREG_OFFSET_CAPTURE标记。

范例

Example #1 查找所有文本中的电话号码。

<?phppreg_match_all("/(?(d{3})?)?(?(1)[-s])d{3}-d{4}/x","Call-or1---",$phones);?>

Example #2 查找匹配的HTML标签(贪婪)

<?php//\2是一个后向引用的示例.这会告诉pcre它必须匹配正则表达式中第二个圆括号(这里是([w]+))//匹配到的结果.这里使用两个反斜线是因为这里使用了双引号.$html="<b>boldtext</b><ahref=howdy.html>clickme</a>";preg_match_all("/(<([w]+)[^>]*>)(.*?)(</\2>)/",$html,$matches,PREG_SET_ORDER);foreach($matchesas$val){echo"matched:".$val[0]."n";echo"part1:".$val[1]."n";echo"part2:".$val[2]."n";echo"part3:".$val[3]."n";echo"part4:".$val[4]."nn";}?>

以上例程会输出:

Example #3 使用子命名组

<?php$str=<<<FOOa:1b:2c:3FOO;preg_match_all('/(?P<name>w+):(?P<digit>d+)/',$str,$matches);/*下面代码在php5.2.2(pcre7.0)或更高版本下工作,不过,为了向后兼容*推荐使用上面的方式.*///preg_match_all('/(?<name>w+):(?<digit>d+)/',$str,$matches);print_r($matches);?>

以上例程会输出:

参见

PCRE 匹配 preg_match() - 执行一个正则表达式匹配 preg_replace() - 执行一个正则表达式的搜索和替换 preg_split() - 通过一个正则表达式分隔字符串 preg_last_error() - 返回最后一个PCRE正则执行产生的错误代码

PHP:preg_replace_callback()的用法_PCRE正则函数 preg_replace_callback(PHP4=4.0.5,PHP5)preg_replace_callback执行一个正则表达式搜索并且使用一个回调进行替换说明mixedpreg_replace_callback(mixed$pattern,callable$callback,mixed$s

PHP:preg_split()的用法_PCRE正则函数 preg_split(PHP4,PHP5)preg_split通过一个正则表达式分隔字符串说明arraypreg_split(string$pattern,string$subject[,int$limit=-1[,int$flags=0]])通过一个正则表达式分隔给定字符

PHP:preg_quote()的用法_PCRE正则函数 preg_quote(PHP4,PHP5)preg_quote转义正则表达式字符说明stringpreg_quote(string$str[,string$delimiter=NULL])preg_quote()需要参数str并向其中每个正则表达式语法中的字符前增

标签: PHP:preg_match_all()的用法_PCRE正则函数

本文链接地址:https://www.jiuchutong.com/biancheng/279886.html 转载请保留说明!

上一篇:PHP:preg_match()的用法_PCRE正则函数

下一篇:PHP:preg_replace_callback()的用法_PCRE正则函数

  • 支付增值税会计科目
  • 一般纳税人劳务费税率是多少
  • 税负率的计算公式举例说明
  • 暂估入库后怎么冲回
  • 什么公司可以开普票
  • 技术开发免征增值税吗
  • 已报关的货物可以改单价价吗
  • 给客户多开了发票,下月少开可以吗?
  • 直接转让土地使用权税费
  • 多交的增值税怎么退
  • 工程改造合同印花税
  • 税务大厅补报个税怎样申报
  • 增值税即征即退政策
  • 股东租车给公司押金
  • 前期差错更正处理方法
  • 发票申领需要什么资料
  • 资产管理人该如何称呼
  • 利润弥补以前年度亏损是税前吗
  • 资产负债表的应收票据包括什么
  • 发票冲红还需要作废吗
  • 嵌入式软件开发工程师
  • 成本费用票少了怎么办
  • 税盘减免会计分录
  • 收到政府的专项资金
  • 房租租赁公司,对方还没付租金,怎么挂帐
  • 物流货损怎样处理
  • psoft1.exe - psoft1是什么进程 有什么作用
  • thinkphp怎么部署
  • 电脑中毒后如何不装系统清理掉
  • win11键盘全部没反应
  • bellzee.exe是什么
  • 个人所得税计提缴纳会计分录
  • 注册资金没有的怎么做账
  • 蚊子咬了怎么消肿止痒最快红霉素软膏
  • 1.exe是什么文件
  • 职工薪酬可能计入什么科目
  • 会计人员报销差额是多少
  • php抽奖程序源码
  • 企业应交税费的会计分录
  • 文化建设事业费优惠政策
  • 未开票收入本月未收款的分录
  • php中实现文件上传需要用到哪几个函数
  • 补差价如何做账
  • 普通发票有抵扣联没
  • 单位之间的争议由谁处理
  • 垃圾处理费计入办公费用吗
  • 收到增值进项发票
  • pythonif嵌套语句
  • 织梦网站特有标识
  • 小规模小于30万之前计提的税金及附加税
  • 资产负债表坏账准备计入哪里科目
  • 季度所得税申报表本年累计怎么填
  • 长期待摊费用的最新账务处理
  • 建安工程预缴税额怎么算
  • 暂估入库已结转成本,下月票回来,还用红冲吗
  • 房屋建筑物固定资产标牌图片
  • 应收账款应付账款可以抵消吗
  • 筹建期开办费明细
  • 购买增值税发票系统金税盘如何入账?
  • 自行研发的无形资产入账价值
  • win8关闭触屏
  • 360安全卫士中心未完全开启
  • 注册表 命令
  • win7总是弹出windows激活
  • win7桌面右下角输入法图标不见了
  • mac怎么旋转窗口
  • linux系统怎么查看root用户密码
  • win7系统显卡驱动怎么安装
  • win1020h2版好不好
  • Linux下OpenVPN配置静态密钥(static-key)验证教程
  • win10mobile下载官网
  • windows常用命令操作
  • js实现拖拽元素改编顺序
  • javascript的含义和作用
  • webview设置ua
  • python 隐函数作图
  • python按位与操作
  • 全电子发票开具怎么扫脸认证?
  • 印花税应税凭证数量是什么意思
  • 个人养老金没有开立资金账户
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设