位置: 编程技术 - 正文

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

  • 专利年费滞纳金计入什么科目
  • 营业收入是不是利润
  • 生产能量计入固定成本
  • 待认证进项税是借方还是贷方
  • 企业公示实缴填写
  • 在途物资的运费放在哪个科目
  • 固定资产按什么价值入账
  • 私车公用产生的过路费开个人发票还是公司发票
  • 小规模纳税人购买原材料会计分录
  • 佣金支出和手续费税前扣除相关政策依据及会计处理
  • 行政单位维修工程规定
  • 免税企业收到增值税专用发票咋办
  • 算材料成本的时候要算增值税吗?
  • 钉钉报销费用明细怎么写
  • 个人抬头发票能开专票吗
  • 境外公司委托境内公司提供劳务
  • 土地使用税每年都交还是交一次
  • 合同作废合同
  • 代收款项属于收入范围吗
  • 企业应交增值税的计算公式
  • 分期付款购入原材料怎么做账
  • 发票开错重开怎么做账?
  • 网络平台收费标准
  • 所得税 季报
  • 开户许可证复印件是什么
  • win10 删除文件 没有找到项目
  • 固定资产占资产总额比例
  • 收到法院的案件款应该怎么做帐
  • 苹果客服人工24小时
  • 房屋装修费如何入账
  • 预付购买材料款会引起会计等式
  • 销售费用税前扣除吗
  • ros source
  • php图片库
  • php实现上传文件
  • 境外服务收入如何申报增值税
  • wordpress项目开发
  • 股权激励费用摊销计算
  • php数组变字符串
  • 常用的成本计算方法有哪些
  • es6的class类如何实现继承
  • 代扣费用会计分录
  • 使用Go http重试请求
  • 查账征收的纳税人能否简易注销
  • mysqlbinlog -vvv
  • 织梦安装完要删除哪个文件
  • 税控盘锁死日期是什么意思
  • 预付账款可以抵扣增值税么
  • sql优化方式
  • 通过法院拍卖取得的土地没有得到执行属于什么案件
  • 折扣如何做账
  • 计提附加税金额
  • 发票系统维护费怎么算
  • 公司向个人借款分录
  • 私立医院怎么做不被骗的事情
  • 单位伙房费用管理制度
  • 企业账务流程
  • 预缴的附加税月末结转吗
  • 摊销本月的广告费合理吗
  • 如何调整以前年度的实收资本
  • 新设企业如何建账
  • 企业建帐的基本要求
  • ubuntu怎么禁用nouveau
  • xp系统无法更换桌面壁纸
  • linux系统文件压缩命令
  • 电脑运行慢怎么办?
  • windows10周年更新
  • win7电脑连不上wifi怎么办
  • linux连接windows的服务redis
  • win8.1 应用商店是不是不能用了
  • win10大更新2020
  • win7为什么打不开原神
  • perl字符串替换 ~s
  • python的linux
  • java面试题简书
  • js鼠标滑动特效
  • python打包成deb
  • js动态调用方法
  • python内建函数 代码
  • 全国税收最高
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设