如何指定正则表达式以拾取日期为2019-02-20起的文件?

时间:2019-03-21 10:10:35

标签: regex

我正在尝试获取某些格式为

的文件
user_registrations.log.2019-03-20_04.

具有指定的文件模式

"user_registrations.log." + "[._a-zA-Z0-9]*"

我需要在2019年2月20日之前在病房中直到2019-03-20的文件。

我该如何指定?

3 个答案:

答案 0 :(得分:3)

user_registrations.log.2019-0(2-2\d|3-[0,1]\d|3-20)_\d+

给以下人的火柴:

enter image description here

答案 1 :(得分:1)

在您指定的情况下,您可以使用:

user_registrations.log.((2019-02-2[0-8])|(2019-03-((0[1-9]|1[0-9])|(20))))

说明:

  • (2019-02-2[0-8])在2月的整天(2019年不是leap日)
  • |表示OR
  • (2019-03-((0[1-9]|1[0-9])|(20)))表示期望的三月。在此正则表达式的此部分中,还有另外一个从01到19的几天的OR,或者仅是2019-03-20的OR,不包括例如2019-03-00,这不是一个合适的日期。

答案 2 :(得分:0)

我使用了差异方法。 提取所有文件并从文件名中提取日期,然后将其转换为毫秒。 将此与预期的开始和结束日期(以毫秒为单位)进行比较。