在 Java 中获取所有捕获的组
我想在括号内匹配单个单词(包括括号),我的下面正在工作,但它没有返回我所有组。Regex
这是我的代码:
String text = "This_is_a_[sample]_text[notworking]";
Matcher matcher = Pattern.compile("\\[([a-zA-Z_]+)\\]").matcher(text);
if (matcher.find()) {
for (int i = 0; i <= matcher.groupCount(); i++) {
System.out.println("------------------------------------");
System.out.println("Group " + i + ": " + matcher.group(i));
}
我也在正则表达式星球中测试了它,它似乎有效。
它必须返回 4 组:
------------------------------------
Group 0: [sample]
------------------------------------
Group 1: sample
------------------------------------
Group 2: [notworking]
------------------------------------
Group 3: notworking
但它只是返回它:
------------------------------------
Group 0: [sample]
------------------------------------
Group 1: sample
怎么了?