我试图在程序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日期,程序只显示照片上真实日期的图片。我不知道这个程序使用的是什么口味的Regex。从他们的网站:
以下字符在正则表达式中使用时具有特殊意义,如果希望在正则表达式中使用它们作为文字,则必须以反斜杠(
\
)作为前缀。[, \, ^, $, ., |, ?, *, +, (, ), /
^=行的开头$=行尾。=匹配任何字符\x =使用文字字符x 有关正则表达式的详细说明,请访问expression
结束
编辑
发布于 2013-06-25 01:30:11
根据批量用作regex引擎的内容,您可以尝试:
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
或30,31
3[0-1]
将日期部分与or运算符组合为一个组。
(0[1-9]|[1-2][0-9]|3[0-1])
如前所述,这一切合在一起,可能会持续一年。同样,这取决于他们决定使用哪个正则表达式引擎。
https://stackoverflow.com/questions/17214176
复制相似问题