1

我正在尝试在程序中使用忽略列表,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#"格式的网站时会出现此问题。

我想出了这个

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 = 使用文字字符 x

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

结尾

编辑

4

1 回答 1

0

根据 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])

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

于 2013-06-25T01:30:11.877 回答