如何从RegExp访问捕获的值,如“/ test /(\ d +)”?

时间:2014-09-21 16:02:00

标签: regex dart

我试图从正则表达式中获取捕获值时撕裂我的头发!我认为这将是微不足道的,但我只是没有看到我期待的结果。

这是我的代码,它列举了所有群组和所有匹配项,并打印出来:

var matches = new RegExp(r"/test/(\d+)").allMatches("/test/1");
matches.forEach((match) {
  for (var i = 0; i < match.groupCount; i++) {
    print(match.group(i));
  }
});

我希望输出包含/test/11,但唯一的输出是:

/test/1

我确定我忽略了一些简单的事情;但我一直盯着the docs的时间比健康的时间长,并且无法发现我所遗漏的东西:(

1 个答案:

答案 0 :(得分:4)

我发现这有点奇怪,但你必须改变这个

for (var i = 0; i <= match.groupCount; i++) {
                   ^

我真的不知道,但我这样解释。实际组以1开头,match.group(0)是整个匹配。