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