位置: 编程技术 - 正文

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

  • 计提税费如何写分录
  • 合资公司注册成立流程
  • 个税申报赡养老人可以填公婆吗
  • 冲减以前年度主营业务成本对今年有影响吗
  • 分期收款销售商品
  • 非货币性资产交换准则
  • 防伪税控开票系统技术维护费
  • 福利进项税额转出怎么做账务处理
  • 发票验旧后可领新发票吗
  • 不动产进项税抵扣规定2016
  • 企业在外地的房产怎么办
  • 销项负数发票会计分录怎么写
  • 城建税一定要当月缴纳吗
  • 教育费附加税优惠
  • 老板请客吃饭拿餐饮发票公司报销怎么账务处理?
  • 旧macbookpro
  • 高新企业认定条件2019
  • PHPfor循环语句10的阶乘
  • 股份支付有哪些基本类型
  • PHP:pcntl_signal()的用法_PCNTL函数
  • 企业借款费用处理不当会产生什么样的后果呢?
  • php实现观察者模式
  • 在一株植物上行走的作文
  • 如何成功安装暗区突围
  • mac配置flutter环境变量
  • 计算机专业的毕业设计作品新颖
  • 已经结账的账目怎么冲红
  • 售后租回怎么理解
  • 电信收款收据可以入账吗
  • mysql的基本介绍
  • 织梦怎么改首页背景
  • Building a HTTP Proxy
  • 年金现值和终值的计算
  • 固定资产投资子公司
  • MYSQL的select 学习笔记
  • sqlsever注释符号
  • 自行建造的固定资产达到预定可使用状态
  • 网上商城功能
  • 企业报税流程是什么样的
  • 计提个税和缴纳个税金额不符的原因
  • 跨年租金如何处理
  • 城镇土地使用税暂行条例
  • 交了社保里面的钱去哪里了
  • 购入农产品的增值税税率是多少
  • 上级补助收入科目
  • 应收账款期末余额为负数表示什么
  • 财政补助结转余额在借方还是贷方
  • 工程材料票占工程款的比例
  • 代发工资的手续流程
  • 客户从公司借钱怎么拒绝
  • 企业利润分配的内容
  • 重大影响包括50%吗
  • 如何利用公式计算
  • 产成品核算的内容
  • 仓库记录
  • 如何防止sql注入及数据安全问题
  • 微软提示
  • win10禁用windows键
  • 优化加速锁定任务是什么意思
  • unix系统的最大特点
  • Solaris 10.0 cvs的安装方法
  • surface 优惠
  • 内核版本能升级吗
  • 升级电脑win10系统
  • xp系统修复怎么操作
  • win7桌面提示7601
  • linux引导程序有哪些
  • win7运行老游戏方法
  • win7系统开机
  • html中dt
  • unity 扩展编辑器
  • html页面头部
  • node.js中的http.response.setHeader方法使用说明
  • linux ls-l命令
  • jquery validator
  • jquery 插件写法
  • 同源策略详解
  • 小规模纳税人销售货物税率是多少
  • 科技公司小规模纳税人与一般纳税人区别
  • 古代怎样征兵
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设