Java正则表达式捕获不起作用

我有一个正则表达式:

l:([0-9]+)

这应该与该字符串匹配并返回三个捕获(根据Rubular)

"l:32, l:98, l:234"

这是我的代码:

Pattern p ...

Matcher m = p.matcher(...);

m.find();

System.out.println(m.groupCount());

当有三个时,此打印输出1(组),所以我只能这样做m.group(1),只会返回32。

回答:

调用Matcher.find查找匹配的 下一个 实例,如果没有更多实例,则返回false。尝试调用它三次,看看是否有所有预期的组。

为了澄清,m.group(1)正在尝试 在正则表达式中 找到第一个组 表达式

。您的正则表达式中只有一个这样的组表达式,因此group(2)永远没有意义。您可能需要m.find()循环调用,直到返回false,并在每次迭代时获取组结果。

以上是 Java正则表达式捕获不起作用 的全部内容, 来源链接: utcz.com/qa/419057.html

回到顶部