私はJava7を使用しています。
バンドルファイル名またはプロパティファイル名を表す文字列から言語と国を抽出したいと思います。ファイル名に拡張子が含まれていません。
例えば
- バンドル->空の文字列またはnull
- bundle_en-> en
- 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コアにすでに存在している可能性がありますか?
ありがとう。