gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 16:36:48 25 4
gpt4 key购买 nike

我有一个正则表达式:

l:([0-9]+)

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

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

这是我的代码:

Pattern p ...
Matcher m = p.matcher(...);
m.find();
System.out.println(m.groupCount());

当有 3 个时,这会打印出 1(组),因此我只能执行 m.group(1) ,它只会返回 32。

最佳答案

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

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

关于Java 正则表达式捕获不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8176559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com