Wil*_*ill 1 java regex matcher regex-group
我无法获得正确的正则表达式匹配组.我的代码归结为以下内容:
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));
}
}
Run Code Online (Sandbox Code Playgroud)
我希望输出为:
2
test
20110101_0000
Run Code Online (Sandbox Code Playgroud)
它然而:
2
test_test_test_test_20110101_0000.xml
test
Run Code Online (Sandbox Code Playgroud)
有人有解释吗?
组(0)是整个匹配,组(1),组(2),...是由正则表达式匹配的子组.
为什么您希望"测试"包含在您的组中?您没有定义要匹配测试的组(您的正则表达式只包含组\ d*_\d*).
| 归档时间: |
|
| 查看次数: |
2876 次 |
| 最近记录: |