位置: 编程技术 - 正文

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

  • 合同履约成本资本化
  • 税务师考试2023年考试时间
  • 一般纳税人企业所得税是多少
  • 建设部门罚款会计分录
  • 企业购进材料入什么账户
  • 税控盘和税控钥匙一样吗
  • 房地产土地使用权是无形资产吗
  • 酒店出租会议室增值税税率
  • 房地产企业拆迁补偿契税政策
  • 抵押住房属于
  • 跨年确认收入税务风险
  • 未加工食材
  • 现金折让怎么做会计分录
  • 支付开票税款计入什么科目
  • 员工自己领取社保卡需要带什么资料
  • 开的是全额发票但是有分包如何做账务处理?
  • 企业支付劳务费到底需要发票吗
  • 预缴企业所得税怎么做会计分录
  • 附加税记入什么科目
  • 专用发票过期了还能冲红发票吗
  • 固定资产报废账目
  • 单位登记注册类型指的是什么
  • 出租设备的折旧计入哪个科目
  • win11怎么关闭系统自动更新
  • 如何取消网络拦截
  • php ftp功能
  • php imagettftext
  • 公司为员工缴纳社保的基数怎么确定
  • 前端vue后端node
  • 工会经费用途规定
  • 加工取得的存货和委托加工的区别
  • 摊销账务处理会计分录
  • 商品流通企业一般采用
  • php简单加密
  • 中途建账期初数据哪里来的
  • 套期工具会计核算
  • 固定资产折旧的计算方法
  • 公允价值怎么记账
  • vue使用百度地图md5报错
  • mysql联合索引使用规则
  • 商品售后回购分录
  • 母子公司资产划转税收政策
  • 发票报送日志不完整
  • 开增值税专用发票的好处
  • 医疗器械和医疗耗材是一回事吗
  • 个体工商户核算方式选哪个比较好
  • 增值税税率调整为13%从什么时候开始实行
  • 营业外收入是指企业确认与企业生产经营活动没有
  • 在建工程工伤保险延期费用计算
  • 开票收入摘要怎么写
  • 关联企业是如何运作的
  • 购入土地使用权的,以评估价格为计税依据
  • 快递费属于办公费吗
  • 企业购买土地时土地款缴纳的耕地占用税入账
  • 以前年度应收账款无法收回
  • mysql用中文字段
  • 联想Thinkpad怎么进入安全模式
  • 电脑bios怎么关
  • 电脑被攻击了怎么修复
  • ubuntu下安装QT教程
  • mac怎么获取文件路径快捷键
  • win8系统电脑
  • win7系统中怎样没有智能卡服务
  • ExtJS GridPanel 根据条件改变字体颜色
  • 让动画不再僵硬的软件
  • jquery多选
  • python xml.etree.ElementTree遍历xml所有节点实例详解
  • unity资源包管理器
  • python app爬虫教程
  • 人员进出管理系统
  • 安卓手机管家删除的照片怎么恢复
  • jquery删除对象
  • 代码实现死锁
  • Python中的多行注释文档编写风格汇总
  • 吉林市无犯罪记录证明网上申请流程
  • 云南地税局官网
  • 单位发的一次性奖励如何扣税
  • 四川省地方税务局公告2018年第3号
  • 企业所得税预缴时间规定
  • 国企残疾职工安置
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设