位置: 编程技术 - 正文

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

  • 政府返还土地款的会计处理
  • 价外税怎么理解
  • 其他权益工具影响哪些报表
  • 两处工资薪金所得
  • 科技公司技术服务费计入什么科目
  • 个体户做了定额还需要申报个税吗
  • 机票附加的保险有必要买吗
  • 党建经费可以用来干什么
  • 增值税主表填报说明
  • 员工收到现金工资怎么写收据
  • 非正常损失计入哪里
  • 资产负债表的编制方法和步骤
  • 网上银行 电子回单
  • 应纳税所得额计算公式excel
  • 发票抵扣联做进项税入账处理是怎样的?
  • 一次性工伤医疗补助金和一次性伤残补助金
  • 购买的车位应如果要进行税务处理需注意什么?
  • 花椒油的税率
  • 房地产企业按照功能可分为
  • 增值税专用发票有效期是多长时间
  • 小型微利企业普惠性税收减免政策执行期限
  • 员工福利专票分录
  • 社保公积金外包对员工的利弊
  • 基金收益率
  • 部shu
  • 蓝牙耳机连电脑
  • 增值税进项税转出文件
  • php递归函数的例子
  • 企业通讯费管理办法
  • 预收账款期末余额怎么算
  • tensorflow dlib
  • 招待费增值税能抵扣吗
  • less预处理器详解
  • vue带参数跳转到详情页面
  • Centos6.5和Centos7 php环境搭建方法
  • css案例教程
  • 运输费计税吗
  • vue.js前端
  • 跨平台 gui
  • 商业银行贷款业务按担保形式分,可分为( )
  • python怎么自己写函数
  • mongodb replica set 添加删除节点的2种方法
  • 购买项目用设备计入什么科目
  • 企业做账会计分录流程
  • 个税清算所得税怎么计算
  • sql按分隔符截取
  • 主办会计的工作内容和职责
  • 工资个税什么时候用综合所得公式计算
  • 债务重组损失计入什么科目2020
  • 结转销售成本的分录
  • 投标保证金怎么记账科目
  • 无形资产研究阶段发生的支出应该全部费用化
  • 什么情况下需要割包皮
  • 水利建设税怎么做账
  • 其他综合收益相反科目
  • 收购发票使用范围及预警怎么写
  • 土地租金怎么做账
  • 废料卖出算哪种收入
  • 如何理解会计含义
  • 账簿按账页格式排序
  • MySql 5.6.36 64位绿色版安装图文教程
  • mysql 高效分页
  • windows server 2008文件共享服务器
  • centos7挂载cdrom
  • centos7权限管理
  • window扫雷游戏在哪里
  • mac如何恢复已删除文件
  • windows8怎么更新到最新版本
  • linux如何远程桌面
  • windows累积更新失败怎么办
  • win7系统电脑蓝牙怎么开
  • linux 指定动态库连接位置
  • Android的AsyncTask官方API谷歌翻译版
  • unity3d状态机
  • jqgrid tree
  • android 基类
  • 国家税务总局党建工作局
  • 国家税务局总局黑龙江分局
  • 弥补亏损怎么算
  • 西安车辆购置税缴纳多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设