python 正则表达式获取字符串中所有的日期和时间
这篇文章主要介绍了python 正则表达式获取字符串中所有的日期和时间,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
提取日期前的处理
1.处理文本数据的日期格式统一化
text
=
"2015年8月31日,衢州元立金属制品有限公司仓储公司(以下简称元立仓储公司)成品仓库发生一起物体打击事故,造成直接经济损失95万元。"
text1
=
"2015/12/28下达行政处罚决定书"
text2
=
"2015年8月发生一起物体打击事故"
# 对文本处理一下 # 2015-8-31 2015-12-28
text
=
text.replace(
"年"
,
"-"
).replace(
"月"
,
"-"
).replace(
"日"
,
" "
).replace(
"/"
,
"-"
).strip()
# 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
=
text.replace(
"年"
,
"-"
).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
=
re.
compile
(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
总结
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场