通用Python正则表达式以不同格式提取日期(d,m,y)

时间:2012-04-10 15:00:34

标签: python regex date text-mining

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

是否有一个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/20/12。

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

在少数情况下创建正则表达式很容易,我可以这样做。问题是,是否已经收集了许多不同的东西。

2 个答案:

答案 0 :(得分:1)

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

警告:the code (direct link to it) is not trivial.

答案 1 :(得分:0)

我对模块parsedatetime祝你好运:

from parsedatetime import parsedatetime, parsedatetime_consts

pdt = parsedatetime.Calendar(parsedatetime_consts.Constants())
parsed, code = pdt.parse('''Your string''')