我需要使用正则表达式从时间戳中提取年份和月份。
示例:
我有一个时间戳:20130923161057
。我需要使用正则表达式提取年份2013
和月份09
。
答案 0 :(得分:1)
最简单的解决方案是使用String.substring(beginIndex, endIndex)
但如果你想要正则表达式,它将是(\d{4})(\d{2}).*
请搜索从正则表达式匹配中提取组的示例。
答案 1 :(得分: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
}
答案 2 :(得分: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);
}
答案 3 :(得分:0)
RegEx在这里并不实用。与诸如String#substring(int, int)之类的易于阅读的java函数相比,没有任何优势:
String timestamp = "20130923161057";
Sring year = timestamp.substring(0, 4);
String month = timestamp.substring(4, 6);
输出:
year = 2013
month = 09