位置: 编程技术 - 正文

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

  • 符合条件的小型微利企业所得税税率为
  • 税法规定的增值税
  • 材料暂估入库的摘要怎么写
  • 六税两费减半征收政策
  • 建筑业预缴税款都要填哪些表
  • 每月先报税还是先清卡
  • 为什么生产车间地板是绿色的
  • 结转抵扣
  • 超市里的摊位租金贵吗
  • 仓储货架工厂仓库货架
  • 进口的原材料没有发票
  • 免税的投资收益需要调整利润表吗
  • 分公司所得税怎么交
  • 企业境外付款流程
  • 小规模纳税人核定标准
  • 产值指的是财务报表哪个数值
  • 快递公司怎么结算
  • 原始凭证的基本内容包括会计科目吗
  • 收到专项拨款属于什么科目
  • 原材料账户可以按什么进行明细核算
  • 普票需要缴纳印花税吗
  • 对方开的销项负数抵扣联怎么处理
  • 停工停产费用
  • windows10如何设置桌面背景
  • 出售使用过的设备
  • 增值税专票和普票的区别税率
  • 回来报销差旅费的会计分录怎么写
  • 如何用腾讯电脑管家回复格式化U盘
  • 笔记本电池消耗大怎么办
  • Vue3 入门笔记 ---- 利用Element Plus对页面进行布局划分以及实现左侧公共菜单
  • 公司报销之后钱发到哪
  • 2022年数学建模获奖结果
  • vscode写前端代码,如何运行
  • 已经结账的账目怎么冲红
  • 简述跨期摊提账户
  • 营业外收入需要报增值税吗
  • 涂料消费税征税范围
  • 为员工购买意外险会计处理
  • 用vue做的企业项目
  • 什么情况下提供个人征信
  • 消防收费标准
  • 清包工方式建筑服务
  • 一般情况下指什么
  • 财务费用包含了利息费用吗
  • 普通发票的进项票怎么做分录
  • 建筑企业增值税怎么算
  • 什么是限制性股票激励
  • 月末怎么结转成本费用
  • ca证书费用计入什么科目
  • 商业医疗保险的缺点
  • 进项做成了销项怎么调账
  • 行政事业单位负责人应当对本单位内部控制
  • 收到红字发票进项税怎么做账务处理
  • 安全生产费计提和使用
  • 财务费用包括哪些费用
  • mysql80安装配置教程
  • 为保证win7安装后能正常使用,安装方法
  • win8怎么没有我的电脑
  • win7桌面和win10桌面
  • macos越狱教程
  • linux 的ll
  • WIN10系统中断
  • win8如何关闭开始屏幕
  • win10打开此电脑的快捷键
  • linux zen3
  • win7鼠标突然不能用了
  • win7系统怎么查看隐藏文件夹
  • cocos2d动画
  • 数组observer
  • Android之Volley
  • 噩梦原版
  • linux c语言获取当前路径
  • python winreg
  • 利用python中的运算符可以编程解决你身边的哪些问题
  • jquery实现表格隔行换色
  • 沉浸式状态栏xposed模块
  • 第一章阎王点卯的小说名字
  • js数组操作的常用方法有哪些
  • 拟录用和录用的区别在哪
  • 税务总局广西
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设