位置: 编程技术 - 正文

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

  • 浙江增值税专用发票几个点
  • 税务机关如何处理公司多交税
  • 生产企业免抵退税
  • 土地使用权转让是什么意思
  • 房地产小规模纳税人预缴税款如何填申报表
  • 年末增值税需要计提吗
  • 拓展费税收分类编码
  • 非独生子女赡养老人专项附加扣除的标准
  • 一个小广告公司一年可以赚多少钱
  • 增值税进项加计扣除计入哪个科目
  • 关联交易措施
  • 免税货物开成含税率的怎么报税?
  • 发行收入要减去股本吗
  • 个体广告用去税务报账吗?
  • 3%征收率的应税服务
  • 小规模印花税减免性质代码和项目名称
  • 预付卡销售发票可以报销吗?
  • 年度报表申报错误,怎样更正
  • 先开发票再预缴税款吗
  • 企业购买股票投资
  • 所得税免税项目
  • 未开票收入申报后又要开票
  • 收到保险公司车辆保险发票会计分录
  • 个体户个人所得税免征额是多少
  • 电脑重装系统怎么激活
  • 计提安全费用含税还是不含税
  • 对公转账存款
  • 收到员工罚款分录怎么记账
  • 福利企业增值税优惠政策
  • 行政事业单位转让不动产
  • 坏账准备的借贷方向表示什么意思
  • 尚融宝盈(宁波)投资中心(有限合伙)
  • thinkphp import
  • 宋大叔教音乐第三单元进阶版
  • 高温补贴入账科目
  • man-s命令
  • 股东退股分利润
  • 失业保险金退回告知书
  • SQLServer 2008 R2中使用Cross apply统计最新数据和最近数据
  • mysql百万级数据分页查询优化
  • linux mysql忘记密码的多种解决或Access denied for user 'root'@'localhost'
  • 职工教育经费中的员工讲课费要发票吗
  • 企业所得税报表查询怎么查
  • 临时工受伤赔偿怎么做账
  • 不动产进项税额不再分两年抵扣
  • 管理费用结转到哪个科目
  • 开办费新会计准则
  • 税金及附加的核算范围
  • 固定资产折旧的会计科目
  • 进项税转出企业所得税调减么
  • 固定资产 金额
  • 银行的结息怎么做会计分录
  • 劳务派遣人员能有营业执照吗
  • 会计报表分析的方法
  • php连接mysql数据库的几种方式及区别
  • mysql80安装配置教程
  • window 启动
  • xp系统没有安装好,请重新运行安装程序
  • macbookair怎么开启
  • windows7怎么说
  • mac怎么旋转窗口
  • Mac怎么连接扫描仪
  • win7系统怎么更改存储位置
  • Win10怎么安装软件
  • win8的控制面板在哪里打开
  • win10查看驱动
  • jframe背景透明
  • 调度器在操作系统中的作用
  • web中class和id的区别
  • 用vue写登录页面
  • 简单的安卓代码
  • jstree异步加载
  • python并发和并行
  • Android性能优化的方面12个
  • android 进程启动流程
  • 向境外付款需要代扣代缴所得税吗
  • 支付宝怎么样开通刷脸支付
  • 煤炭资源税税率是多少啊
  • 江苏省国家税务总局江苏省电子税务局
  • 实名办税有什么作用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设