位置: 编程技术 - 正文

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

  • 零售环节征收消费税标准
  • 进口关税的计算方式
  • 进口关税计算公式 案例
  • 印花税的征税范围
  • 预付卡发票可以报销吗?
  • 小规模无进项怎么补税
  • 由第三方代付款开票给对方合规吗
  • 自行研发的无形资产会计处理
  • 建筑施工企业收到工程款会计分录
  • 增值税专票怎么抵扣
  • 一般纳税人辅导期
  • 固定基金怎么算
  • 汽车租赁油费怎么算
  • 哪些费用可以计入待摊费用
  • 事业单位自筹事业人员
  • 没有认证方式
  • 红冲增值税专用发票需要收回原发票吗
  • 个人出租仓库需交税吗
  • 小规模纳税人咨询费税率
  • 增值税普通发票有什么用
  • 税务稽查执法要以什么为依据,按照法定的职责
  • 实收资本增加印花税缴纳时间
  • 上月有留抵的进项税额本月会计分录
  • 总公司签合同发票可以给子公司吗
  • 企业转让股权收入应缴纳企业所得税吗
  • 理财赎回利息怎么做账分录
  • 公司购买汽车的购置税怎么做账
  • 增值税暂行条例属于
  • 卖固定资产如何做账
  • 怎么计提担保赔偿准备金?
  • 培训机构收一年费用合法吗
  • 定期定额征收的个体户怎么报税
  • 年末结转年初建账
  • 出差补贴算工资薪金吗
  • 出口退税怎么申报个税
  • os x yosemite dp5下载地址 os x 10.10 dp5更新内容
  • 转让子公司产生的投资收益在合并层面是不是全部抵消
  • 土地增值税清算扣除项目
  • 申报补缴是什么意思
  • 出售固定资产减免的税款账务处理
  • 工业会计账务处理
  • 买一赠一的会计处理与税务处理
  • cookies方法
  • php处理xml数据
  • 公司注销方便吗
  • 原生js获取元素高度
  • web前端开发学什么
  • php取字符串
  • 交所得税会计分录例题
  • 其他综合收益 综合收益
  • 怎样计算负债率
  • 利用职务之便谋取私利是什么罪
  • linux中mongodb启动
  • 公司给员工交社保对公司有什么好处
  • 普通动产和特殊动产登记的区别
  • 酒吧会计如何做工作
  • 实际发的工资跟个人所得税不一样怎么办
  • 实报实销有补贴嘛
  • 小规模企业能否消化13点增值税普通发票
  • 资产质量的相对性举例说明
  • 更换账簿需要注意哪些问题
  • 零售货品
  • mysql5.7压缩包
  • centosrpm安装
  • mysql怎么修改my.ini
  • win back什么意思
  • win10无法安装软件怎么解决
  • linux查看组的信息
  • 简介linux系统中的10个常用命令及功能
  • shell中awk命令
  • win系统开发
  • win7开始菜单没有启动文件夹
  • jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
  • 安卓手机怎么设置自动化
  • python微信公众号开发教程
  • android内存占用分析
  • 开票网线属于哪一类
  • 8倍社会平均工资 北京
  • 江苏税务个人所得税app怎么下载不了?
  • oppo纳税额
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设