python正则表达式获取字符串中所有的⽇期和时间
提取⽇期前的处理
1.处理⽂本数据的⽇期格式统⼀化正则表达式提取中文
text = "2015年8⽉31⽇,衢州元⽴⾦属制品有限公司仓储公司(以下简称元⽴仓储公司)成品仓库发⽣⼀起物体打击事故,造成直接经济损失95万元。" text1 = "2015/12/28下达⾏政处罚决定书"
text2 = "2015年8⽉发⽣⼀起物体打击事故"
# 对⽂本处理⼀下 # 2015-8-31 2015-12-28
text = place("年", "-").replace("⽉", "-").replace("⽇", " ").replace("/", "-").strip()
2.提取时间的正则表达式
# 2019年10⽉27⽇ 9:46:21
"(\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2})"
# 2019年10⽉27⽇ 9:46"
"(\d{4}-\d{1,2}-\d{1,2})"
# 2019年10⽉27⽇
"(\d{4}-\d{1,2}-\d{1,2})"
# 2019年10⽉
"(\d{4}-\d{1,2})"
3.对其进⾏封装
def get_strtime(text):
text = place("年", "-").replace("⽉", "-").replace("⽇", " ").replace("/", "-").strip()
text = re.sub("\s+", " ", text)
t = ""
regex_list = [
# 2013年8⽉15⽇ 22:46:21
"(\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2})",
# "2013年8⽉15⽇ 22:46"
"(\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2})",
# "2014年5⽉11⽇"
"(\d{4}-\d{1,2}-\d{1,2})",
# "2014年5⽉"
"(\d{4}-\d{1,2})",
]
for regex in regex_list:
t = re.search(regex, text)
if t:
t = t.group(1)
return t
else:
print("没有获取到有效⽇期")
return t
ps:下⾯看下python提取字符串中⽇期
import re
#删除字符串中的中⽂字符
def subChar(str):
match=repile(u'[\u4e00-\u9fa5]')
return match.sub('',str)
#提取⽇期
def extractDate(str):
if not str:
return None
raw=subChar(str)
if not raw:
return None
#提取前10位字符
rawdate=raw[:10]
datelist=re.findall("\d+",rawdate)
if not datelist:
return None
if datelist.__len__()==3:
if (float(datelist[0])>2099 or float(datelist[0])<1900) or float(datelist[1])>12 or float(datelist[2])>31:
return None
else:
return '-'.join(datelist)
if datelist.__len__()==2:
if (float(datelist[0])>2099 or float(datelist[0])<1900) or float(datelist[1])>12:
return None
else:
datelist.append('01')
return '-'.join(datelist)
if datelist.__len__()==1:
if float(datelist[0])>20991231 or float(datelist[0])<19000101:
return None
else:
return datelist[0]
return None
总结
以上所述是⼩编给⼤家介绍的python 正则表达式获取字符串中所有的⽇期和时间,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。在此也⾮常感谢⼤家对⽹站的⽀持!
如果你觉得本⽂对你有帮助,欢迎转载,烦请注明出处,谢谢!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论