content = 'xxxxxx'
pattern = re.compile(r'(20\d{2}[_,/,\-,年]\d{1,2}[/,_,\-,月]\d{0,2})(\s{1}\d{2}:\d{2}(:\d{2}){0,1}){0,1}')
# 拿到文章中提取的时间[('2017-05-08', '', ''), ('2009年10月', '', ''), ('2012年2月', '', ''), ('2012年7月', '', ''), ('2012年10月23', '', '')]
date_match = re.findall(pattern,content)
# 将元组转化为字符串
date_list = []
for date_tuple in date_match:
date_list.append(''.join(date_tuple))
if len(date_list) == 0:
return None
elif len(date_list) == 1:
return date_list[0]
else:
# 当列表中时间长度不同时:列表从前往后迭代,两两对比不同的时间的长度,返回最大的
lastdate = None
date_str = None
for i in date_list:
if lastdate:
if i != lastdate:
date_str = max([i,lastdate])
break
lastdate = i
# 如果列表内所有字符串长度相同那么返回index 0
if not date_str:
date_str = date_list[0]
return date_str
网友评论