如何使用正则表达式解析字符串日期?
How can I parse string date with regex?
我有 3 个可能的字符串日期。
我必须用正则表达式解析日期字符串
date = "13.06.2020"
date2 = "13-06-2020"
date3 = "13/06/2020"
for i in [date,date2,date3]:
finder = re.findall(r'something',i) #I try findall but I think it doesn't work.
print("day : " + finder[0])
print("month : " + finder[1])
print("year : " + finder[2])
它应该给出所有可能性的输出。我想出了 Datetime 但我不能使用它。我使用了 re 库
day:13
month:06
year:2020
大家有什么建议吗?
试试这个
for i in [date,date2,date3]:
finder = re.findall(r'(\d{1,2})[\.\-\/](\d{2})[\.\-\/](\d{4})',i)
print("day : " + finder[0][0])
print("month : " + finder[0][1])
print("year : " + finder[0][2])
避免使用正则表达式来解析日期字符串。使用 dateutil
模块中的 parser.parse
(您可以使用 cmd pip install python-dateutil
通过 pip 安装)
>>> from dateutil import parser
>>> for date_str in [date,date2,date3]:
... dt = parser.parse(date_str)
... print(f"day : {dt.day}, month: {dt.month}, year: {dt.year}")
...
day : 13, month: 6, year: 2020
day : 13, month: 6, year: 2020
day : 13, month: 6, year: 2020
我有 3 个可能的字符串日期。
我必须用正则表达式解析日期字符串
date = "13.06.2020"
date2 = "13-06-2020"
date3 = "13/06/2020"
for i in [date,date2,date3]:
finder = re.findall(r'something',i) #I try findall but I think it doesn't work.
print("day : " + finder[0])
print("month : " + finder[1])
print("year : " + finder[2])
它应该给出所有可能性的输出。我想出了 Datetime 但我不能使用它。我使用了 re 库
day:13
month:06
year:2020
大家有什么建议吗?
试试这个
for i in [date,date2,date3]:
finder = re.findall(r'(\d{1,2})[\.\-\/](\d{2})[\.\-\/](\d{4})',i)
print("day : " + finder[0][0])
print("month : " + finder[0][1])
print("year : " + finder[0][2])
避免使用正则表达式来解析日期字符串。使用 dateutil
模块中的 parser.parse
(您可以使用 cmd pip install python-dateutil
通过 pip 安装)
>>> from dateutil import parser
>>> for date_str in [date,date2,date3]:
... dt = parser.parse(date_str)
... print(f"day : {dt.day}, month: {dt.month}, year: {dt.year}")
...
day : 13, month: 6, year: 2020
day : 13, month: 6, year: 2020
day : 13, month: 6, year: 2020