位置: 编程技术 - 正文

PHP之正则表达式捕获组与非捕获组(详解)(php 正则表达式)

编辑:rootadmin

推荐整理分享PHP之正则表达式捕获组与非捕获组(详解)(php 正则表达式),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php正则匹配a标签href,phpemail正则,phpemail正则,phpemail正则,phpemail正则,php正则表达式匹配链接,php正则表达式匹配链接,php 正则,内容如对您有帮助,希望把文章链接给更多的朋友!

在项目开发过程中正则表示经常会用到,可以说会正则表达式是每个程序员最基本的要求,初学者在刚接触正则表达式都感到很吃力。最近看到一位朋友的博客写的《PHP正则表达式》获益颇多,在章节对通配符以及捕获数据非常感兴趣。这两章节刚好也涉及到了正则表达式的捕获组和非捕获组的内容,以此来分析这方面的内容

  我们知道,在正则表达式下(x) 表示匹配'x'并记录匹配的值。这只是比较通俗的说法,甚至说这是不严谨的说法,只有()捕获组形式才会记录匹配的值。非捕获组则只匹配,不记录。

  捕获组:

  (pattern)

这种形式是我们见到最多的一种形式,匹配并返回捕获结果,可以嵌套,组号顺序从左到右依次排列‘。

  匹配结果:

这种方式虽然看起来在构造正则表达式的时候略微复杂一点,但实质上与(pattern)一样。最大的优势体现在对结果处理上,程序员可以直接根据自己设置的<name>直接快速调用结果,而不用再去数需要的结果在第几个子组了。

  匹配结果:

num是一个整数,是对捕获组的反向引用。 例如2表示第二个子组匹配值,表示第一个子组匹配值

  匹配结果:

PHP之正则表达式捕获组与非捕获组(详解)(php 正则表达式)

注意,这里我疏忽了一个小细节,一开始我第一样代码是 $regex = “/(w)(w)/”; 结果返回无匹配结果,经过调试后,发现这里只能用' '。'与" 用法差别大家还是需要注意下。

  k< name >

  了解了(&#;P<name>pattern)与num,这个就不难理解了。k< name >是对命名捕获组的反向引用。其中 name 是捕获组名。

  匹配结果:

  非捕获组:

  (&#;:pattern)

  与(pattern)的唯一区别是,匹配pattern但不捕获匹配结果。这里便不再举例。

  还有四种方式实际上讲的是一个事情:预查。

  预查分为正向预查与反向预查。根据字面理解,正向预查是判断匹配字符串后面某些字符存在与否,而反向预查则是判断匹配字符串前面某些字符存在与否。

  正向预查判断存在使用(&#;=pattern),判断不存在使用(&#;!pattern)。

  反向预查判断存在使用(&#;<=pattern),判断不存在使用(&#;<!pattern)。

  匹配结果:

  这四种形式使用的是否只要注意好相对匹配字符串的位置和断言肯定还是否定,就会很快掌握。

  另外,预查的四种形式是零宽度的,匹配的时候只做一个判断,本身是不占位置的。/HE(&#;=L)LLO/ 与HELLO匹配,而/HE(&#;=L)LO/与HELLO是不匹配的。毕竟但从字节数上两者就是不匹配的,前者只有4个,而后者有5个。

标签: php 正则表达式

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

上一篇:如何通过Linux命令行使用和运行PHP脚本(linux命令行怎么用)

下一篇:PHP定时执行任务实现方法详解(Timer)(php定时执行代码)

  • 进项留抵转出会计分录
  • 代开的增值税专票需要另外申报附加税吗?
  • 近三年复合增长是什么意思
  • 国有独资企业是国企吗
  • 个人所得税汇算表
  • 生产成本和制造费用的账务处理
  • 账面价值与计税基础之间没有差别只是计价的两种名称
  • 出口货物不报关走快递
  • 为改良生产线发生的变化
  • 营业执照类型有限责任公司
  • 产品样品送样流程
  • 车辆日常维护费用
  • 单位边际贡献和边际贡献一样吗
  • 企业内部控制调查问卷
  • 怎么控制成本费用餐厅
  • 进口货物需要交哪些税
  • 商业承兑汇票贴现手续费是多少
  • 房地产公司苗木账务处理
  • 收到政府补贴现金流量表怎么填
  • 现金流量表公式大全
  • 货物保管不善交来的罚款账务处理?
  • 老板想提取销售公积金
  • 样品开发费用怎么记账
  • 收到多开的发票会计上怎么入成本?
  • 研发费用的检测费指的是什么内容
  • 未达账项做完调节表后怎么处理?
  • 减免附加税分录怎么做
  • 企业购房时支付的房租
  • 安全系统不起作用或未正确安装 cad2016
  • swupdtmr.exe - swupdtmr进程是什么意思 什么作用
  • 贷款减值准备和减值准备支出的区别
  • 暂估成本跨月账务处理
  • 如何使用wordpress建站
  • 桌面图标间距特别大
  • 付的押金冲抵部分怎么算
  • PHP:Memcached::set()的用法_Memcached类
  • 工会费会计分录
  • 同城票据清算和清算资金往来的区别
  • 小程序开发要钱吗
  • 企业分立股权比例发生变化的税务处理
  • 材料发票和工程发票的区别
  • 补充医疗保险会查hiv吗
  • linux数据库导入命令
  • mongodb 教程
  • python 逻辑取反
  • 民办非企业免税政策
  • 含税与不含税的计算公式
  • 个人所得税定额税率
  • sql已成功与服务器建立连接但登录中发生错误
  • 金税盘电子发票下载失败
  • 增值税普通发票查询
  • 水电费没有票怎么做账
  • 车船税手续费返还时间
  • 原始股卖出需要缴税吗
  • 出口样品未报关处罚
  • 上年度凭证录错会计凭证录错了怎么修改
  • 旅行社代订的机票可以抵扣吗
  • 小规模应收利息怎么算
  • 提前还贷款计算机
  • 什么是现金流量表
  • 关于注册资本的最新规定
  • phpstorm配置php环境 mac os
  • sqlserver数据库恢复挂起状态
  • MySQL的存储过程保存在哪里
  • CentOS 7.2下MySQL的安装与相关配置
  • xp系统禁用网络连接
  • windows7计算机管理拒绝访问
  • mac在哪看
  • win10系统样子
  • Android开发简单购物界面
  • 导演都有什么分类
  • activity的生命周期有哪些状态
  • linux每隔1s执行一次命令
  • 安卓演示模式有什么用
  • linux 定时任务
  • js 截取
  • jquery打开文件对话框
  • js框架开发实例
  • 残疾人创业有税收什么优惠政策
  • 河南地税税率怎么计算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设