指定日期之间的正则表达式匹配?

时间:2014-11-11 12:09:36

标签: regex

我有以下日期字符串格式,取自大型数据集:

Wed Oct 05 19:26:09 BST 2014

我需要提取15th October 09:0023rd October 11:00

之间的日期

我目前有这个正则表达式:(Oct\W\d\d\W\d\d\W\d\d\W\d\d)匹配:Oct 05 19:26:09

我怎样才能改变它以匹配我指定的日期和时间范围?

2 个答案:

答案 0 :(得分:2)

我认为尝试使用单一正则表达式找到一系列日期是一种很好的方法 - 将来很难改变和重用。用你编程语言中的变量提取每月的天数是不是更好?那么处理比较将是微不足道的。当然这取决于你的问题的背景

答案 1 :(得分:2)

@Maciej Baranowski说..你不应该用RegExp这样做。但是,万一你必须,并且没有其他选择..这是该条件的正则表达式:

编辑:基于OP评论的新答案。仅匹配10月15日至23日和9:00:00至11:00:00之间的日期

#Oct\W(?:1[5-9]|2[0-3])\W(?:(?:0?9|10):\d{2}:\d{2}|11:00:00)#

您可以看到它有效here