我使用 Java 7。
我想从代表捆绑文件名或属性文件名的字符串中提取语言和国家/地区。文件名不包含扩展名。
例如
- bundle --> 空字符串或 null
- bundle_en --> zh
- bundle_en_US --> en_US
- complex_bundle_name_en_US --> en_US
我试过这个,但它没有给我预期的结果。
private static void testPattern(String bundleName) {
final Pattern pattern = Pattern.compile(".+(_[a-z]{2,3}(_[A-Z]{2,3}){0,1}){0,1}");
final Matcher matcher = pattern.matcher(bundleName);
if (matcher.matches()) {
for (int i = 0; i < matcher.groupCount(); ++i) {
System.out.println("Group " + i + " = " + matcher.group(i));
}
} else {
System.out.println("Nothing");
}
}
对于“bundle_en_US”,它的节目:
组 0 = bundle_fr_US 组 1 = null
你能帮我纠正我的正则表达式,还是这个正则表达式已经存在于 java 核心中?
谢谢。