位置: 编程技术 - 正文

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定时执行代码)

  • 银行电子回单有没有法律效应
  • 外国驻华使领馆自用车辆
  • 劳务费增值税专用发票税率是多少
  • 税控盘维护费的分录
  • 小规模纳税人企业所得税2023
  • 金蝶eas怎么用
  • 新成立的小规模纳税人怎么报印花税
  • 税金及附加减半征收政策2022最新
  • 股权变更涉及哪些税种
  • 建筑企业有哪些
  • 发票税号不对还能报销吗
  • 小规模纳税人如何升级为一般纳税人
  • 企业收到的政府补贴交所得税吗
  • 即征即退项目的进项税额不参与加计抵减
  • 出口退税免税申报怎么报
  • 资源税折算后计提怎么算
  • 普通发票申请表怎么填写
  • 2021年旅游免费
  • 不征税收入的所得税处理
  • 外资企业所得税和内资区别
  • 现金支票存根联需要盖章吗?
  • 保险的月缴纳可以调整么?
  • 公司支付宝付款
  • 公司车辆过户给公司
  • 不能取得进项发票但结转成本,税务说明怎么写
  • 国税发200931号文解读
  • 小微企业一季度30万免税
  • 电商刷单的财务操作
  • 现金流净额为负值说明什么
  • 新注册公司税务报到
  • 小规模银行存款多笔小金额财务费用可以合并记账吗?
  • 销售商品货款已预收
  • 企业不征税收入用于支出所形成的固定资产
  • 空调安装工程如何做
  • 出口退税款的账户是什么
  • 附加税包括哪些税种2021年
  • 一键ghost有用吗
  • 购买办公桌会计分录
  • 超市库存商可以分为几大类
  • thinkpad预装的office怎么激活
  • 如何阻止win10升级到win11
  • win11开机后无法操作
  • 代垫运费的会计处理
  • 季节性用工政策
  • 百度飞桨paddle
  • 递归 php
  • c#创建web
  • sar参数设置4个数
  • vue数据加载完成显示页面过渡动画
  • 加工票可以抵扣吗
  • 公司5个印章都刻错了
  • 织梦使用手册
  • 博客首页设计
  • 非营利组织缴纳增值税账务处理
  • 个人缴纳社保部分怎么算
  • 微信收款和支付宝收款有啥区别
  • 将自产产品用于赠送
  • 建筑工程维修费占总费用多少
  • 税控系统技术维护费全额抵扣分录
  • 2020年混凝土增值税税率是多少
  • 生产车间人员工资期末结转
  • 税控维护费跨年怎么算
  • 预提短期借款利息的会计科目
  • 支付劳务费需要什么原始凭证
  • navicat连接mysql时出现1045错误的解决方法
  • page文档的排版技巧
  • wweb32.exe - wweb32是什么进程
  • mac的vmware
  • win7系统如何调节电脑屏幕亮度
  • kprcycleaner.exe是什么
  • 样式的使用方法
  • lrucache算法
  • eclipse运用
  • js确认框选择取消时退出程序怎么设置
  • 增值税开票系统如何添加开票人
  • 地税税务稽查管理办法
  • 广东税务查询系统
  • 办公室租金可以开专票抵扣进项税吗
  • 北京市东城分局刑侦大队电话
  • 外贸高新技术企业认定
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设