重复捕获组功能

时间:2016-04-26 18:58:31

标签: regex greedy

我正在尝试重复文本的捕获组

a b c d

所需的输出为a b c d

我尝试重复像([A-z])(?:(?:[ ]([A-z]))*)这样的捕获组来获得所需的结果,但捕获组只保留最后一个匹配。正则表达式是否无法保留捕获组的重复捕获结果?如果是这样,这是否意味着我无法在一个正则表达式中捕获像上面的可变长度数据?谢谢。

1 个答案:

答案 0 :(得分:0)

Ony Dot-Net 可以在一个匹配的正则表达式中获得所有内容 它们被称为捕获集合。

基本上,每个组都会累积一个字符串数组。

例如,

 (?:
      ( [a-zA-Z] )                         # (1)
      (?: [ ] | $ )
 )+

在单个匹配中,组1包含 Collection 字符串。

否则,在其他引擎中,行为如您所述,
捕获组在每个量化的传递中被覆盖。