正则表达式 —— 非捕获元
非捕获元讲解
正则表达式语法中,有一种称为”非捕获元“。是基于子表达式的语法规则;
举例1 | (pattern) |
匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到。 |
举例2 | (?:pattern) |
匹配 pattern 但不获取匹配结果。 |
举例3 | (?=pattern) |
正向肯定预查(look ahead positive assert)。这是一个非获取匹配。 |
举例4 | (?!pattern) |
正向否定预查(negative assert)。这是一个非获取匹配。 |
举例5 | (?<=pattern) | 反向(look behind)肯定预查,与正向肯定预查(?=pattern)类似,只是方向相反。这是一个非获取匹配。 |
举例6 | (?<!pattern) | 反向否定预查,与正向否定预查(?!pattern)类似,只是方向相反。这是一个非获取匹配。 |
举例1:
表达式: /win(1|2|3)/g字符串: "win4win3win2"共找到 2 处匹配:
win3
win2
举例2:
表达式: /win(?:1|2|3)/g字符串: "win4win3win2"共找到 2 处匹配:
win3
win2
类似于表达式:/win1|win2|win3/g 或者是 /win(1|2|3)/g
举例3:正向 肯定
表达式: /win(?=1|2|3)/g字符串: "win4win3win2"共找到 2 处匹配:
win
win
能够匹配到win3 win2的win,不能匹配win4的win;
举例4:正向 否定
表达式: /win(?!1|2|3)/g字符串: "win4win3win2"共找到 1 处匹配:
win
能够匹配到win4的win,不能匹配win2 win3的win;
举例5:反向 肯定
表达式: /(?<=1|2|3)win/g字符串: "4win3win2win"共找到 2 处匹配:
win
win
能够匹配到3win 2win的win,不能匹配4win的win;
举例6:反向 否定
表达式: /(?<!1|2|3)win/g字符串: "4win3win2win"共找到 1 处匹配:
win
能够匹配到4win的win,不能匹配2win 3win的win;
正则表达式 —— 非捕获元相关推荐
- 正则表达式 非捕获性分组
非捕获性分组语法为(?:pattern),即将pattern部分组合成一个可统一操作的组合项,但不把这部分内容当作子匹配捕获,匹配的内容部进行编号也不存储在缓冲区中供以后使用.非捕获性分组方法在必须进 ...
- 正则表达式中的非捕获组是什么?
非捕获组(即(?:) )如何在正则表达式中使用,它们有什么用? #1楼 在复杂的正则表达式中,您可能会希望使用大量的组,其中一些用于重复匹配,而另一些则提供反向引用. 默认情况下,与每个组匹配的文本会 ...
- 【正则表达式系列】一些概念(字符组、捕获组、非捕获组)
前言 本文介绍一些正则中的常用名词以及对应概念,譬如字符组,捕获组.非捕获组.反向引用.转义和\s \b等 大纲 字符组 捕获组 反向引用 非捕获组 ..\s和\S \b \转义 字符组 []字符组表 ...
- 正则表达式捕获分组和非捕获分组及用法
正则表达式 (regular expression)是一个描述字符模式的对象. ECMAScript 的 RegExp 类 表示正则表达式,而 String 和 RegExp 都定义了使用正则表达式进 ...
- php 正则匹配分组命名,正则表达式、分组、子匹配(子模式)、非捕获子匹配(子模式)...
前面我们知道正则表达式有很多元字符表示匹配次数(量词),都是可以重复匹配前面出现的单个字符次数.有时候,我们可能需要匹配一组多个字符一起出现的次数.这个时候,我们需要分组了.就是用小括号来括起这些字符 ...
- java正则表达式基础 关于特殊字符、捕获组和非捕获匹配
JAVA正则表达式 我个人认为正则表达式是很好用很强大的,在编写程序中很多地方都用的到,这里有一些我学习的基础理解和大家分享,欢迎一起讨论. 正则表达式是一种用来表达语法规则的字符串,是一种字符串匹配 ...
- 正则表达式中的捕获非捕获匹配
正则表达式中的非捕获匹配 (?:pattern) (?=pattern) (?!pattern) (?<=pattern) (?<!pattern) 在正则表达之使用中,经常会用到捕获匹配 ...
- 正则表达式的非捕获性分组
非捕获性分组,通常由一对括号加上 ?: 加上子表达式组成,非捕获性分组不会创建反向引用,就好像没有括号一样.如下: var color = "#808080"; var outpu ...
- 正则表达式之非捕获组
有什么用 非捕获类,在正则很简单时,没什么用,只有在正则中大量使用()时才有用 详细说明-举例说明 匹配2013-05-07,你可以用\d{4}-\d{2}-\d{2},你也可以加个括号(\d{4}) ...
最新文章
- 加密解密php,PHP实现的加密解密处理类
- 如何学习Python开源项目代码
- mybatis 一二事(1) - 简单介绍
- How to use price determination in Quotation scenario
- iOS开发简单高效的数据存储
- C/S架构网络聊天软件——Java Chat Application 用java做一个聊天机器人
- 不裁员也好意思叫互联网公司?
- Mobile Phone Network CodeForces - 1023F(并查集lca+修改环)
- Pytorch的BCEWithLogitsLoss函数中忽视标签怎么实现
- 蓝桥杯 ALGO-79 算法训练 删除数组零元素
- new Image().src资源重复请求问题
- 3、简单了解Angular应用的启动过程
- difference softreference and weakreference
- 基于java的药品库房管理系统
- DELL披露MacBook Pro杀手
- 怎样用sc命令运行服务器,windows中的sc控制服务命令
- 贪婪洞窟2怎么在电脑上玩 贪婪洞窟2安卓模拟器教程
- 图像颜色空间转换--RGB to Lαβ
- 基于EasyNVR实现RTSP_Onvif监控摄像头Web无插件化直播监控
- VHDL实现USART
热门文章
- python3全栈开发-并发编程,多进程的基本操作
- 锋利的Jquery摘要
- iOS开发----UI部分----iPhone各类屏幕的分辨率
- 启动Tomcat服务时,出现org.apache.catalina.startup.VersionLoggerListener报错
- 【错误分析】NX error status: 32
- frame.origin和frame.size的心得
- [Hadoop] - 异常Cannot obtain block length for LocatedBlock
- 双系统(win7+ubuntu)ubuntu磁盘空间不足时解决方法
- ubuntu 12.04 ubuntu System program problem detected 解决方法
- redis集群如何解决重启不了的问题