Python 要提取日期和时间的正则表达式

Python 要提取日期和时间的正则表达式,python,regex,Python,Regex,我使用nltk正则表达式提取日期和时间: text = 'LEts have quick meeting on Wednesday at 9am' week_day = "(monday|tuesday|wednesday|thursday|friday|saturday|sunday)" month = "(january|february|march|april|may|june|july|august|september| \ october|november|dece

我使用nltk正则表达式提取日期和时间:

text = 'LEts have quick meeting on Wednesday at 9am'
week_day = "(monday|tuesday|wednesday|thursday|friday|saturday|sunday)"
month = "(january|february|march|april|may|june|july|august|september| \
          october|november|december)"
dmy = "(year|day|week|month)"
exp2 = "(this|next|last)"
regxp2 = "(" + exp2 + " (" + dmy + "|" + week_day + "|" + month + "))"
reg2 = re.compile(regxp2, re.IGNORECASE)
found = reg2.findall(text)
found = [a[0] for a in found if len(a) > 1]
for timex in found:
    timex_found.append(timex)

print timex_found
我觉得一切都很好,但它没有任何线索?我应该做什么改变来考虑“星期三”以及“本星期三”

意志


以我的情况为例?

正则表达式正在寻找
((这是下一个最后一个)(dmy周日月))

您的输入不匹配

一些可行的替代方案:

((this|next|last|on) (dmy|weekday|month))

((this|next|last)? (dmy|weekday|month))

一行一行地看一遍,看看这一行是否产生了预期的结果。当你这样做的时候,如果你不知道如何修复它,你将有一个实际上是最小的。在你的输入中没有
(这个|下一个|最后一个)
。谢谢,但是我们可以标记
这一天
这两个日期吗present@user3449212-答案中的第二个建议允许可选的
this | next | last
。谢谢,但我对正则表达式的理解很差。你能告诉我如何使用它吗?
这是你的意思吗?是的,或者
regxp2=“((“+exp2+”)(“+dmy+”)“+week\u day+”“+month+”)”
这是你的意思吗
((this|next|last|on) (dmy|weekday|month))

((this|next|last)? (dmy|weekday|month))