正規表現を使用してタイムスタンプから年と月を抽出する必要があります。
例 :
タイムスタンプがあります: 20130923161057
. 正規表現を使用して年2013
と月を抽出する必要があります。09
最も簡単な解決策は、 String.substring(beginIndex, endIndex)を使用することです
ただし、正規表現が必要な場合は(\d{4})(\d{2}).*
、正規表現一致からグループを抽出する例を検索してください。
Pattern pattern = Pattern.compile("(\\d{4})(\\d{2})\\d{8}");
Matcher matcher = pattern.matcher("20130923161057");
if (matcher.find()) {
int year = Integer.parseInt(matcher.group(1));
int month = Integer.parseInt(matcher.group(2));
// do something with year/month
}
ここでは正規表現はあまり役に立ちません。読みやすいString#substring(int, int)のような Java 関数と比較して利点はありません。
String timestamp = "20130923161057";
Sring year = timestamp.substring(0, 4);
String month = timestamp.substring(4, 6);
出力:
year = 2013
month = 09
本当に正規表現が必要な場合は、次のようにすることができます。
Pattern p = Pattern.compile("(?<year>\\d{4,4})(?<month>\\d{2,2})");
Matcher m = p.matcher("20130923161057");
if (m.find())
{
String year = m.group("year");
String month = m.group("month");
System.out.println(year + " " + month);
}