正規表現の一致の適切なグループを取得するのに問題があります。私のコードは次のように要約されます。
Pattern fileNamePattern = Pattern.compile("\\w+_\\w+_\\w+_(\\w+)_(\\d*_\\d*)\\.xml");
Matcher fileNameMatcher = fileNamePattern.matcher("test_test_test_test_20110101_0000.xml");
System.out.println(fileNameMatcher.groupCount());
if (fileNameMatcher.matches()) {
for (int i = 0; i < fileNameMatcher.groupCount(); ++i) {
System.out.println(fileNameMatcher.group(i));
}
}
出力は次のようになると思います。
2
test
20110101_0000
ただし、その:
2
test_test_test_test_20110101_0000.xml
test
誰か説明がありますか?