`

捕获组

阅读更多

引用java规范

组和捕获

捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B(C))) 中,存在四个这样的组:

1     2     3     4    
((A)(B(C)))
\A
(B(C))
(C)

组零始终代表整个表达式。

之所以这样命名捕获组是因为在匹配中,保存了与这些组匹配的输入序列的每个子序列。捕获的子序列稍后可以通过 Back 引用在表达式中使用,也可以在匹配操作完成后从匹配器检索。

与组关联的捕获输入始终是与组最近匹配的子序列。如果由于量化的缘故再次计算了组,则在第二次计算失败时将保留其以前捕获的值(如果有的话)例如,将字符串 "aba" 与表达式 (a(b)?)+ 相匹配,会将第二组设置为 "b"。在每个匹配的开头,所有捕获的输入都会被丢弃。

(?) 开头的组是纯的非捕获 组,它不捕获文本,也不针对组合计进行计数。

分享到:
评论

相关推荐

    java正则表达式之非捕获组

    感觉JDK这块不好理解,写了几个例子。求拍求回复。

    double-cute#note#捕获组的编号、命名、反向引用1

    1. 在正则表达式内部引用捕获组: 2. 在外部引用捕获组: 3. 反向引用的匹配规则:

    正则基础之——捕获组(capture group).rar

    正则基础之——捕获组(capture group).rar

    Qt捕获组合按键实现

    qt的键盘事件不能捕获多个按键按下.即便是在使用modifiers()时,也只能获得类似于shfit+x,ctrl+c,alt+y等等之类的快捷键,对于shift+x+c诸如此类更多的组合就无能为力的.本案例中提供了一种捕获shift+a+b...组合键的...

    fugly:使用正则表达式中的命名捕获组提取命名子字符串

    该软件包提供了一个单一函数( str_capture ),用于使用命名捕获组从字符串中提取值。该函数只是的包装器。 fugly::str_capture()与和utils::strcapture()非常相似。 编写此软件包是因为stringr尚未进行命名的捕获...

    named-regexp, Java 5/6 正规表达式的命名捕获组.zip

    named-regexp, Java 5/6 正规表达式的命名捕获组 命名正则表达式 这个轻量级库增加了 5/6 ( 在Android上) 中命名为捕获组( )的支持。这是来自( 当前处于非活动状态)的名为regexp的的fork的。用法可以以使用( 。例如...

    正则表达式之捕获组/非捕获组介绍

    捕获组 语法: 字符  描述 示例 (pattern) 匹配pattern并捕获结果,自动设置组号。  (abc)+d 匹配abcd或者abcabcd (?<name>pattern) 或 (?’name‘pattern) 匹配pattern并捕获结果,设置name为组名...

    PHP正则表达式之捕获组与非捕获组

    今天遇到一个正则匹配的问题,忽然翻到有捕获组的概念,手册上也是一略而过,百度时无意翻到C#和Java中有对正则捕获组的特殊用法,搜索关键词有PHP时竟然没有相关内容,自己试了一下,发现在PHP中也是可行的,于是...

    PHP之正则表达式捕获组与非捕获组(详解)

    这两章节刚好也涉及到了正则表达式的捕获组和非捕获组的内容,以此来分析这方面的内容  我们知道,在正则表达式下(x) 表示匹配’x’并记录匹配的值。这只是比较通俗的说法,甚至说这是不严谨的说法,只有()捕获组...

    正则 捕获组(capture group)

    捕获组有两种形式 一种是普通的捕获组,不产生歧义的情况下,后面简称捕获组,语法规则:(expression); 另一种是命名捕获组,语法规则:(?<name>expression)或者(?’name’expression),这两种写法是等价的。   1...

    浅谈PHP正则中的捕获组与非捕获组

    今天遇到一个正则匹配的问题,忽然翻到有捕获组的概念,手册上也是一略而过,百度时无意翻到C#和Java中有对正则捕获组的特殊用法,搜索关键词有PHP时竟然没有相关内容,自己试了一下,发现在PHP中也是可行的,于是...

    深入浅析正则表达式 捕获组

    捕获组(capturing group)是正则表达式里比较常用,也是比较重要的概念,我个人觉得掌握这部分的知识是非常重要的。 这篇文章内容不会很深入,但是尽量做到简单易懂又全面。接下来的内容主要是围绕以下7个点: 1: ...

    除捕获组的语法外,其它的(?…)语法都不是捕获组的验证

    …)语法都不是捕获组。” 这个内容是好理解的,但疑惑的是,该文章作者在另一篇相关正则的技术文章中,其中一个这样的实例,着实让我迷惑了一番: 文本内容 <td>a</td><td>b</td> 正则表达式 (?is)(?:(?!).)*...

    除捕获组的语法外,其它的(?...)语法都不是捕获组的验证

    主要介绍了除捕获组的语法外,其它的(?...)语法都不是捕获组的验证,需要的朋友可以参考下

    转到库以将正则表达式捕获组扫描到类似于fmt.Scanf的变量-Golang开发

    rxscan rxscan提供使用正则表达式捕获组将文本扫描到变量的功能。 该库仍处于试验阶段,可在您的rxscan上使用rxscan提供使用正则表达式捕获组将文本扫描到变量的功能。 该库仍处于试验阶段,使用风险自负。 始终欢迎...

Global site tag (gtag.js) - Google Analytics