不存在日期的正则表达式数字范围



我试图在程序Bulk Image Downloader中使用忽略列表,并且包含/排除列表使用正则表达式。该程序允许您搜索如下范围:

http://example.com/gallery/page[1-99].htm 

从页面中取出图像

example.com/gallery/page1.htm  
example.com/gallery/page2.htm  
…  
example.com/gallery/page99.htm

很简单,对吧?当搜索使用"yyyymmdd"格式而不是简单的"page#"格式的站点时,会出现这个问题。

I came up with this

example.com/[yyyy0101-yyyy1231].html

我从yyyy处下载的任何年份拉出所有适当的页面,我只是通过并删除糠。问题是,它搜索的不是365页1131,需要12倍的时间来搜索,因为它搜索了所有不存在的日期,并尝试了4次没有响应的页面。

然后我找到了一个解决方法:

example.com/images/[yyyy0101-yyyy1231].png

因为我下载的一些网站的图片都在一个地方。但我遇到了同样的问题,但方向相反。图像搜索几乎立即结束,但所有不存在的日期都有错误的图像(程序给它们占位符),这些图像在下载而不是搜索时需要永远浏览。

因此,我尝试为排除列表编写一个正则表达式,它将自动删除在不存在的日期范围中找到的任何内容。我甚至查了一下每个月有多少天,并确保在2月29日离开闰年。看哪。

[0132-0200]
[0230-0300]
[0332-0400]
[0431-0500]
[0532-0600]
[0631-0700]
[0732-0800]
[0832-0900]
[0931-1000]
[1032-1100]
[1131-1200]

证明正则表达式并不像程序本身那样工作。我试着查了一下,坦率地说,我不太懂。

那么这到底应该是什么样子呢?

我不需要排除正则表达式是什么,因为它将进入忽略列表。虽然它可能对别人有用。

编辑

我希望程序通过隔离无效/不存在的mmdd日期来仅显示照片上真实日期的图片。我不知道程序使用了什么风格的正则表达式。从他们的网站:

以下字符在正则中使用时具有特殊含义表达式,如果希望使用,则必须以反斜杠()作为前缀它们作为正则表达式中的字面量。

[, , ^, $, ., |, ?, *, +, (, ), /

^ =行开始$ =行结束。=匹配任意字符x = use文字字符x

有关正则表达式的详细说明,请访问http://wikipedia.org/wiki/Regular_expression

编辑

根据Bulk Image Downloader使用的正则表达式引擎,您可以尝试:

example.com/[201301-201312](0[1-9]|[1-2][0-9]|3[0-1]).html

这应该允许您选择所选年份的有效月份

[201301-201312]

那么日期可以是01 - 09

0[1-9]

10-29

[1 - 2] [0 - 9]

或30、31日

3[0-1]

使用or运算符将日期部分组合成一个组

(0[1-9]|[1-2][0-9]|3[0-1])

如上所述把它们放在一起,它可能会工作一整年。同样,这取决于他们决定使用哪个正则表达式引擎。

最新更新