java正则表达式匹配日期

时间:2020-11-28 06:11:29
  public static List<String> run(String text) { 
String dateStr = text.replaceAll("r?n", " ");
List<String> dates = new ArrayList<String>();
try {
Pattern p = Pattern.compile("(\\d{1,4}[-|\\/|年|\\.|\\s]?(0[1-9]|1[1-2])[-|\\/|月|\\.|\\s]?(0[1-9]|[1-2]\\d|3[0-1]))", Pattern.CASE_INSENSITIVE|Pattern.MULTILINE);
Matcher matcher = p.matcher(dateStr);
while (matcher.find()) {
String temp = matcher.group();
dates.add(temp);
}
} catch (Exception e) {
}
return dates;
}

只能提取同时具有年月日的日期,但可以匹配多种日期的连接方式,可以根据需要进行更改。提取之后可以通过以下方法将时间字符串转换成标准格式。代码如下

public static List<String> getDates(List<String> list){
List<String> dates = new ArrayList<String>();
for (String date : list) {
String[] strs = date.split("[-|\\/|年|月|\\.|\\s]");
String time = "";
for (String s : strs) {
time += s;
}
dates.add(time);
}
return dates;
}