如何在python dateparser中查找所有正则表达式字符串

时间:2018-05-10 11:03:50

标签: python date-parsing

我正在使用dateparser模块将一些人类可读的文本解析为python日期时间对象。现在我有一个正则表达式字符串列表并应用输入字符串来查找是否有任何匹配。

我想使用dateparser使用的正则表达列表的完整列表,是否有获取列表的方法,或者只有一种方法可以处理输入字符串。

我有以下列表

date_regex = ['[0-9]+ days', 'yesterday', '[0-9]+ weeks', 'a week', '1 week', 'last week', '[0-9]+ months', 'a month', '1 month', 'year']

但使用dateparser可以解析1 year agolast 3 mins ago等字符串。所以我想采用dateparser使用的所有可用正则表达式。

我的输入还包含许多与日期/时间相关的字符串也包含在内的文本。所以我需要提取它们并使用dateparser将它们转换为日期时间对象。

以示例更新 input="I booked a movie 4 days ago, but planned last week"。 我需要提取4 days agolast week。我想在dateparser中应用所有可用的正则表达式字符串。

1 个答案:

答案 0 :(得分:1)

为什么不使用dateparser套餐?从自然语言解析日期非常复杂,有很多边缘情况。如果你只是好奇他们在做什么,最好的方法是查看源代码。

编辑:

您可以将字符串列表转换为正则表达式:

import re
regexes = list(map(lambda x: re.compile(x), items))