1

我正在寻找一种从文本中提取日期(日、月、年)的方法。也就是说,我想在人工编写的字符串中找到所有日期(或者更确切地说 - 尽可能多)。

是否有一个 Python 正则表达式涵盖尽可能多的格式?

评论:

from dateutil.parser import parse
parse(s, fuzzy = True)

工作正常,但它被限制为每个字符串一个日期。

例子:

项目将于 2013 年 1 月 21 日至 2013 年 2 月 15 日举行。资助申请将被接受至 2012 年 4 月 15 日。接受通知:8 月 1 日或之后。提前付款到期:15.10.12。等迟到:12 年 11 月 20 日。

通常(但并非总是)约定对于单个条目或多或少是一致的。

在少数情况下创建正则表达式很容易,我可以做到。问题是是否已经有一个收集许多不同的。

4

2 回答 2

1

如果您想自己动手,可以从Regexp::Common时间模块以及那里的时间和日期模式中获取灵感。

请注意:代码(直接链接到它)并非微不足道。

于 2012-04-10T16:08:39.610 回答
0

我对这个模块很幸运parsedatetime

from parsedatetime import parsedatetime, parsedatetime_consts

pdt = parsedatetime.Calendar(parsedatetime_consts.Constants())
parsed, code = pdt.parse('''Your string''')
于 2012-04-10T15:39:52.610 回答