Python 要提取日期和时间的正则表达式
我使用nltk正则表达式提取日期和时间: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
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))