位置: 编程技术 - 正文

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

  • 房地产开发企业资质等级有几个
  • 政府收回土地补偿款是否缴纳土地增值税
  • 中华人民共和国宪法
  • 什么是明细分类账簿
  • 红字专用发票能作废吗
  • 材料实际成本包括哪些内容
  • 物业公司哪些费用需要公示
  • 盈余公积多计提对报表的影响
  • 专用发票红冲后可以退税吗?
  • 增值税没有按时缴纳会影响开票吗
  • 营改增后如何纳税
  • 哪些情况下需要更换轮胎
  • 税务实名认证怎么认证
  • 研发样机转销售合法吗
  • 固定资产清查怎么开展
  • 进口货物内销的增值税处理
  • 分期收款销售的商品属于存货吗
  • 电子税务局发送短信异常是怎么回事
  • 怎样找此电脑
  • 开发票原则是收款之后才能开具吗
  • 签订租赁合同的期限
  • PHP:oci_new_descriptor()的用法_Oracle函数
  • ipv6无网络访问权限怎么解决
  • 去年的发票忘记入账怎么处理
  • 委托加工物资企业收回自用
  • 公司承担的社保公积金怎么做账
  • 返点收入怎么会计分录
  • an exit
  • 第一部塞班手机
  • 销售收入与销售成本
  • 摊销专利权会计分录怎么写
  • 货物运输业的增值税税率
  • 出租个人住房怎样交税
  • 多表联动查询
  • php引用返回用法怎么用
  • vue框架总结
  • python tle
  • 购物赠品的相关法律
  • 林木苗圃
  • opengl 帧率
  • 增值税发票认证结果通知书在哪里打印
  • 固定资产一次性折旧账务处理
  • 织梦网站停止使用了还侵权吗
  • 延期缴纳土地使用税怎么办理
  • 个人账户用于公司发工资
  • mysql 自动重启
  • 备用金有发票抵扣吗
  • 电子税务局增值税抵扣流程
  • 坏账准备的账务处理T型
  • 材料采购合同印花税税率
  • 以物抵债在法律上叫什么
  • 电子设备折旧残值率
  • 生产中产生的废油漆桶等危险废物应当作为什么贮存
  • 材料核销的依据
  • 公司买车车辆购置税怎么交钱
  • 如何处理消防安全事件
  • 税前税后利润弥补亏损的会计分录
  • 营业外收入算未开票收入吗
  • 视同销售的账务处理方法
  • 哪些会计凭证可以抵扣进项税
  • mysql的性能调优
  • winxp文件夹选项在哪
  • 两台电脑如何共享网络
  • mac系统怎么打开任务管理器
  • centos7搭建nfs详细步骤
  • win10累积更新 卡住
  • mac系统怎么查看
  • linux系统简介
  • win8计算机管理员权限
  • windows 10的屏幕键盘快捷键在哪里
  • 如何用dos破解wifi
  • win8.1优化工具
  • unity ui图层
  • 流程控制语句java
  • shell脚本入门详解
  • unity3d官方教程
  • 吉林省残疾人保障金减免政策
  • 江苏省国家税务局发票查询
  • 2023河南新农合截止日期新规
  • 小规模印花税2023减半吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设