我正在使用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 ago
,last 3 mins ago
等字符串。所以我想采用dateparser
使用的所有可用正则表达式。
我的输入还包含许多与日期/时间相关的字符串也包含在内的文本。所以我需要提取它们并使用dateparser
将它们转换为日期时间对象。
以示例更新
input="I booked a movie 4 days ago, but planned last week"
。
我需要提取4 days ago
和last week
。我想在dateparser
中应用所有可用的正则表达式字符串。
答案 0 :(得分:1)
为什么不使用dateparser
套餐?从自然语言解析日期非常复杂,有很多边缘情况。如果你只是好奇他们在做什么,最好的方法是查看源代码。
编辑:
您可以将字符串列表转换为正则表达式:
import re
regexes = list(map(lambda x: re.compile(x), items))