regex – 日期范围的正则表达式

前端之家收集整理的这篇文章主要介绍了regex – 日期范围的正则表达式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我有这样的目录结构
yyyy/dd/mm/<files>

有没有办法使用正则表达式在给定时间范围内grep所有文件中的字符串?例如,我有一个时间框架:2010/12/25 – 2011/01/01,我需要grep对应于日期从12月25日到1月1日的目录中的所有文件

如果我以编程方式执行此操作,是否最好在每个yyyy / dd / mm目录中迭代日期范围和grep文件,而不是使用正则表达式执行此操作?或者它不会有所作为?

在你的情况下,它很简单:
\b(?:2010/12/(?:3[01]|2[5-9])|2011/01/01)\b

将匹配包含您指定范围内的日期的字符串.但一般来说,正则表达式不适合匹配日期范围.它总是有可能,但很少是一个好的.

例如,对于2003/04 / 25-2011 / 04/04的范围,你得到

\b(?:
2003/04/(?:30|2[5-9])|
2003/(?:(?:0[69]|11)/(?:30|[12][0-9]|0[1-9])|(?:0[578]|1[02])/(?:3[01]|[12][0-9]|0[1-9]))|
2011/04/0[1-4]|2011/(?:02/(?:[12][0-9]|0[1-9])|0[13]/(?:3[01]|[12][0-9]|0[1-9]))|
(?:2010|200[4-9])/(?:02/(?:[12][0-9]|0[1-9])|(?:0[469]|11)/(?:30|[12][0-9]|0[1-9])|(?:0[13578]|1[02])/(?:3[01]|[12][0-9]|0[1-9]))
)\b

如果我不得不做这样的事情(并且不能在文件属性中使用创建日期),我会使用RegexMagic(创建日期范围正则表达式)和PowerGREP(进行grepping)如果它是一次性的工作,但这些仅适用于Windows.如果我不得不经常这样做,我会编写一个小的Python脚本,遍历我的目录树,解析每个目录的日期,检查它是否在范围内,然后查看该目录中的文件.

原文链接:https://www.f2er.com/regex/356860.html

猜你在找的正则表达式相关文章