位置: 编程技术 - 正文

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

  • 支付给派遣员工的工资计入应付职工薪酬吗
  • 房屋契税怎么交在手机上操作
  • 单位外币账户领取流程
  • 支付利息现金流量表中什么增加
  • 领备用金填什么单子
  • 企业无票支出怎么入账
  • 外国公司开发古镇
  • 小汽车的增值税怎么算
  • 小规模交了增值税还要交什么
  • 发票验旧的办理条件及所需资料是什么
  • 查补以前年度所得税如何填写申报表
  • 私人帐户可以给别人用吗
  • 挂靠费如何纳税?
  • 税收编码规则
  • 物流公司通行票抵税比例是多少
  • 可以对开发票吗
  • 房地产的出租行为属于土地增值税征收范围吗
  • 生产企业出口退税操作流程视频
  • 增值税发票系统金税盘发票怎么抵扣
  • 固定资产投资增长意味着什么
  • 在建工程抵工程款
  • 收到场地租赁费用计入什么科目
  • 公司缴纳递延所得税吗
  • 换货的手续费走哪个科目
  • 超过三年的坏帐损失税前扣除怎样规定?
  • 电信服务通信服务费计入什么科目
  • 冲未开票收入怎么做分录
  • 销售部门品种多怎么说
  • 巴蒂斯塔卡里
  • vue2.0解决跨域问题
  • 出口收汇可以收人民币吗
  • 跨省异地施工
  • 会计准则长期待摊费用开始计提摊销的时间
  • 农产品抵扣进项税额的规定
  • uniapp微信小程序兼容
  • 一般纳税人开普票税率是3%还是13%
  • 一般纳税人进项大于销项账务处理
  • 销售农产品是否交消费税
  • 小规模纳税人1%税率优惠政策
  • sqlserver2008不存在或拒绝访问怎么办
  • 处置使用过的固定资产,税率按多少
  • 计提增值税附加税的账务处理
  • 什么是全面预算控制?全面预算控制的作用有哪些?
  • 跨月的普通发票能作废吗
  • 开办费新会计准则
  • 发票金额与付款金额不一致情况说明
  • 投资性房地产账面价值大于公允价值计入什么
  • 支付原材料款项会计科目
  • 代扣代缴城建税为什么没有计入利润
  • 建筑施工企业在12个月内第三次发生生产安全事故的
  • 发行长期债券计入什么科目
  • 消费税出口退税吗
  • 公司账户多少钱保证公司运转
  • 离职员工未休完的年假如何支付
  • 无形资产摊销怎么做记账凭证
  • 劳动关系从什么时候确立
  • mysqlusing
  • windows vista秘钥
  • Fedora 9.0 Apache+PHP+MYSQL 环境安装
  • windows取消定时任务
  • win8系统运行在哪里
  • linux和windows关系
  • 无法安装windows xp
  • win7 win10 win8
  • win8注册表损坏进不了系统
  • linux如何使用u盘
  • unity项目中的资源
  • excel f9刷新
  • linux BASH shell下设置字体及背景颜色
  • 学习雷锋好榜样
  • 闵行税务稽查局
  • 信息咨询费包括什么费用
  • 稽查查补税款享受增值税免税优惠吗
  • 设计合同需要备案吗
  • 临沂二套房契税收费标准2023年
  • 印花税核算有两种情况,是如何处理的?
  • 房契税发票丢了能补办吗
  • 地税公职律师招聘
  • 长沙税务查询电话
  • 河南国税发票查询真伪官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设