位置: 编程技术 - 正文

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 操作系统查看
  • ps4运行windows
  • PHP调用API
  • 招标场地费计入什么科目
  • 计划成本法和实际成本法区别
  • 营业外收入增加说明什么问题
  • 基于中国国情的中国式现代化具有哪些特色
  • 融资租赁与经营租赁的联系
  • laravel启动流程
  • linux查看ssh服务开启
  • 弗吉尼亚理工大学美国排名
  • 深入php第五版中文版pdf
  • 计算机视觉项目文档
  • laravel后端
  • In Java, how do I read/convert an InputStream to a String? Stack Overflow
  • 税收返还会计处理办法
  • dedecms51
  • 无法支付的应付账款转作营业外收入
  • 小规模纳税人可以做进出口贸易吗
  • 个人股权转让需要评估吗
  • 专票和普票都是13个点嘛
  • PostgreSQL教程(十二):角色和权限管理介绍
  • mongodb安装教程win10
  • 结转销售成本的凭证需要附件吗
  • 质保金 销售费用
  • 本年利润总额是什么
  • 电子商业承兑汇票的承兑有以下几种方式
  • 建筑业简易计税预交
  • 暂估入库怎么处理
  • 企业如何运用内部招募
  • 往来账怎么记账
  • 租车费报销管理规定
  • 处置投资性房地产取得的收入属于企业收入吗
  • 旅游服务住宿费公司不给报销
  • 农产品进项税额会计分录
  • sqlserver附加数据库时出错,请单击消息中的超链接
  • 一个简单的群规怎么写
  • winxp怎么自动开机
  • win8怎么关闭电脑
  • hyper v安装系统
  • windows补丁kb3033929
  • win7系统电脑开机后直接进入系统修复怎么办
  • Android中的touch事件
  • CSS锦囊
  • 怎么做小地图图片呢
  • iframe内容自适应缩放
  • 使用Meteor配合Node.js编写实时聊天应用的范例
  • 用nodejs搭建服务器
  • 不要用强制方法杀掉python线程
  • JavaScript获取网页内容
  • python保存文件到指定文件夹
  • Jquery实现$.fn.extend和$.extend函数
  • 石油类资源税税率是多少
  • 昆山国税局上班时间
  • 广西城建投资集团官网
  • 河南省城市规划法
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设