gpt4 book ai didi

java - java.util.regex.Matcher 中的 groupCount() 总是返回 0

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:55:50 24 4
gpt4 key购买 nike

我试图计算一个字符串中有多少匹配模式。我是使用 java.util.regex 的新手,我正计划使用 matcher.groupCount() 来获取匹配组的数量。因为根据文档,它返回捕获组的数量。

Returns the number of capturing groups in this matcher's pattern.

Group zero denotes the entire pattern by convention. It is not included in this count.

Any non-negative integer smaller than or equal to the value returned by this method is guaranteed to be a valid group index for this matcher.

这是我的问题的一个简化示例:

Pattern pattern = Pattern.compile("@");
Matcher matcher = pattern.matcher("@#@#@#@#@");
System.out.println(matcher.groupCount());

它的输出是0。我误解了哪一部分?如何计算匹配模式的数量?

最佳答案

groupCount 方法返回Pattern 中的组数。

Pattern 中的组是用括号分隔的。

您的模式 不包含任何组。

如果您要查找匹配项的数量,请在 Matcherfind() 方法上使用 while 循环(它返回 boolean 值)。

例如:

int myMatches = 0;
while (matcher.find()) {
myMatches++;
}

编辑

Java 7+ 的命名组也是以圆括号分隔,尽管它们遵循的语法比未命名组稍微复杂一些。

参见 here了解详情。

关于java - java.util.regex.Matcher 中的 groupCount() 总是返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23244390/

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