首页 > 解决方案 > 如何从文本中提取日期(任何格式)?

问题描述

假设我有类似Based on 1. And it is 15-May-2016. 我必须从可以是任何格式的文本中找到日期。我正在与

list( datefinder.find_dates( text, strict = False))

问题是这个函数将 1. 作为 2021, 4, 1 如果我设置strict = False并且如果我设置strict =True那么它没有检测到 2016 年 5 月 15 日。

有没有其他方法可以从文本中找到任何格式的日期?

标签: pythondatedatefinder

解决方案


如果您知道您感兴趣的日期总是超过 7 个字符,那么您可以这样做:

>>> import datefinder
>>> text = "Based on 1. And it is 15-May-2016."
>>> for dt, idx in datefinder.find_dates( text, strict=False, index=True):
...     if idx[1] - idx[0] > 7:
...         print(dt, text[idx[0]: idx[1]])
2016-05-15 00:00:00  15-May-2016.

推荐阅读