-2

正規表現を使用してタイムスタンプから年と月を抽出する必要があります。

例 :

タイムスタンプがあります: 20130923161057. 正規表現を使用して年2013と月を抽出する必要があります。09

4

4 に答える 4

1

最も簡単な解決策は、 String.substring(beginIndex, endIndex)を使用することです

ただし、正規表現が必要な場合は(\d{4})(\d{2}).* 、正規表現一致からグループを抽出する例を検索してください。

于 2013-09-23T14:28:16.430 に答える
1
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
}
于 2013-09-23T14:28:24.850 に答える
0

ここでは正規表現はあまり役に立ちません。読みやすいString#substring(int, int)のような Java 関数と比較して利点はありません。

String timestamp = "20130923161057";

Sring year = timestamp.substring(0, 4);
String month = timestamp.substring(4, 6);

出力:

year = 2013
month = 09
于 2013-09-23T14:53:37.900 に答える
0

本当に正規表現が必要な場合は、次のようにすることができます。

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);
}
于 2013-09-23T14:28:42.847 に答える