位置: 编程技术 - 正文

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

  • 怎么把销项税额进项税额给转掉
  • 所得税是什么意思
  • 付钱给对方会计分录
  • 团建费用途
  • 办公室提前退租未摊完的装修费如何处理
  • 软件企业享受税收优惠
  • 餐饮行业打折部门是什么
  • 购房所需的税费种类和费用
  • 承租人转租是否要交税
  • 公司为员工异地调岗
  • 运输业过路费怎么做账
  • 以前年度亏损本季度盈利所得税
  • 什么时候需要计提税金及附加
  • 房地产开发企业会计科目
  • 分公司不独立核算怎么报税
  • 外包的人力费用包括哪些
  • 修理时换下的废品配件怎么处理?
  • 进项抵扣怎么做分录
  • 营改增后装饰公司税率
  • 税务局返还的个税手续费需要缴纳增值税吗
  • linux默认文件类型
  • 收到投资款怎么做记账凭证
  • 技术服务合同要盖骑缝章吗
  • win10怎么样禁止电脑运行某个程序
  • 王者荣耀中廉颇是哪一个族的族长
  • win10升级win11报错
  • 抵扣了的进项税可以冲销么
  • 外币债券汇兑损益怎么算
  • 免抵退税怎么做账
  • 购入未抵扣的固定成本
  • 税收筹划的风险性
  • laravel5.4利用163邮箱发送邮件的步骤详解
  • js循环有哪些
  • 基于Laravel5.4实现多字段登录功能方法示例
  • 公允价值变动损益借贷方向增减
  • 前端页面加载缓慢怎么办
  • 生产企业的成本有哪些
  • 债务重组利得计入其他收益还是营业外收入
  • 论文如何学
  • 企业以付费的形式
  • spring integration使用:消息转换器
  • php字符串处理函数有哪些
  • 待摊费用的明细
  • 其他应收款检查表怎么填
  • 利用python创建文件
  • Yii 连接、修改 MySQL 数据库及phpunit 测试连接
  • 税法增值税的不同
  • 员工补助每月申报怎么填
  • 一般纳税人的商业保险可以开票吗
  • 什么叫做有限循环小数
  • 免征水利建设基金条件
  • 其他债权投资的公允价值变动计入什么科目
  • 法人转让股权,可以打个人账户吗
  • 土地租金计入什么会计科目
  • 消费税也是流转税吗
  • 公司二手车销售
  • 退票费凭证可以用于报销吗?
  • 保险公司理赔时会查多久的病史
  • 费用设置的明细科目
  • 工业企业待摊费用标准
  • 怎样银行存款,预付帐款,应收帐款余额做资金平衡表
  • 在数据库master中拒绝了create table权限
  • 安装windows server 2008 r2
  • 新移动硬盘安装视频教程
  • logo是什么文件夹
  • win10控制面板中没有防火墙
  • ubuntu的安装步骤
  • centos 虚拟化
  • centos7tar解压
  • win10显示win8
  • unity de
  • 各浏览器网址
  • opengl教程48讲
  • JavaScript中的this指向
  • 了解python
  • python的设置
  • 电商平台税收怎么交
  • 退伍军人坐火车要钱吗
  • 杭州没有户口可以上幼儿园吗
  • 计提缴纳城建税分录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设