на самом деле ваш цикл for должен ВКЛЮЧИТЬ groupCount (), используя "<<strong> = ":
for (int i = 0; i <= fileNameMatcher.groupCount(); ++i) {
System.out.println(fileNameMatcher.group(i));
}
, таким образом, ваш результат будет:
2
test_test_test_test_20110101_0000.xml
test
20110101_0000
groupCount () не будет считать группу 0, совпадающую со всей строкой.
первая группа будет "test", как соответствует (\ w +), а
вторая группа будет "20110101_0000", как соответствует(\ d * _ \ d *)