RegEx缩短日期

时间:2016-01-07 13:03:04

标签: javascript regex date

我的日期格式如 2015-12-14 10:15 ,我必须根据包含多个日期的日期(如日志文件)搜索字符串(大数据)。< / p>

但问题是字符串文件可能包含 2015-12-14 10:17 2015-12-14 10:19 等日期(最后一位数不是多个) 5)。我必须在 2015-12-14 10:15 之后从文件中获取数据(最后一位数不是5的倍数)。 如果我正在搜索 2015-12-14 10:15 的正则​​表达式,即 / 2015-12-14 10:15 / ,在这种情况下失败,因为确切的日期是不存在于字符串文件中。 我需要在日期或通过日期之后获得字符串(即2015-12-14 10:15)。

String like ::

  

[2015-12-14 10:04:11,232]我建议你阅读我为初学者写的第一篇文章。 [2015-12-14 10:18:22,367]在本文中,我将向您展示如何使用表达式将“日期”过滤器添加到HTML模板。 BEGIN [2015-12-14 10:18:22,368]格式化日期对象,毫秒(字符串或数字)或各种ISO 8601的日期

当我使用正则表达式缩短失败的日期时,因为该字符串中不存在日期。那么我应该使用什么正则表达式,以便我可以在传递日期或传递日期之后得到字符串。

期望的输出:

  

[2015-12-14 10:18:22,367]在本文中,我将向您展示如何使用表达式将“日期”过滤器添加到HTML模板。 BEGIN [2015-12-14 10:18:22,368]格式化日期对象,毫秒(字符串或数字)或各种ISO 8601的日期

指导我为此编写正则表达式。

1 个答案:

答案 0 :(得分:2)

没有正则表达式会发现日期大于任意传递的日期。您可以编写一个长正则表达式,查找在特定ISO 8601日期之后发生的日期时间。您甚至可以编写一个可以为给定输入生成此类正则表达式的脚本。

我认为您想要做的只是找到一个符合ISO 8601日期的正则表达式。采用该正则表达式,修改该正则表达式以包括日期周围的方括号,并在日期匹配之后包括文本,直到下一个匹配/ EOF。

然后,您将使用javascript循环遍历所有匹配项,并检查大于输入日期的日期。如果所有日期都是ISO 8601,则不需要将它们转换为日期对象,字符串比较就足够了。