【发布时间】:2011-08-11 15:33:48
【问题描述】:
我有一个字符串,其中包含多个日期值,我想将它们全部解析出来。该字符串是自然语言,所以到目前为止我发现的最好的东西是dateutil。
不幸的是,如果一个字符串中有多个日期值,dateutil 会抛出一个错误:
>>> s = "I like peas on 2011-04-23, and I also like them on easter and my birthday, the 29th of July, 1928"
>>> parse(s, fuzzy=True)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/pymodules/python2.7/dateutil/parser.py", line 697, in parse
return DEFAULTPARSER.parse(timestr, **kwargs)
File "/usr/lib/pymodules/python2.7/dateutil/parser.py", line 303, in parse
raise ValueError, "unknown string format"
ValueError: unknown string format
关于如何解析长字符串中的所有日期有什么想法吗?理想情况下,会创建一个列表,但如果需要,我可以自己处理。
我正在使用 Python,但在这一点上,其他语言可能还可以,如果他们能完成工作的话。
PS - 我想我可以在中间递归地拆分输入文件并尝试,再试一次,直到它工作,但它是一个地狱。
【问题讨论】:
-
在您的示例字符串中,您是否认为“复活节”是您要解析的日期?
-
不。正在测试它是否有效,但无论哪种方式我都不太在意。
-
使用 DateUtil 1.5 它当然可以工作,我的错。但我仍然想以一种比 MattH Shawn Chin 更清洁/更快的方法来奖励它……
标签: python parsing python-dateutil