首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不存在日期的Regex数范围

不存在日期的Regex数范围
EN

Stack Overflow用户
提问于 2013-06-20 12:54:38
回答 1查看 211关注 0票数 1

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

代码语言:javascript
运行
复制
http://example.com/gallery/page[1-99].htm 

从页面中提取图像

代码语言:javascript
运行
复制
example.com/gallery/page1.htm  
example.com/gallery/page2.htm  
…  
example.com/gallery/page99.htm

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

我想出了这个

代码语言:javascript
运行
复制
example.com/[yyyy0101-yyyy1231].html

不管是哪一年,我都会从原地下载yyyy来提取所有合适的页面,我只是浏览并删除了这个页面。问题不是在365页中搜索,而是搜索1131页,搜索时间是原来的12倍,因为它会搜索所有不存在的日期,并尝试不响应4次的页面。

然后,我使用以下方法找到了解决办法:

代码语言:javascript
运行
复制
example.com/images/[yyyy0101-yyyy1231].png

因为我从一些网站下载的图片都在一个地方。但我遇到了同样的问题,但正好相反。图像搜索很快就结束了,但是所有不存在的日期都有错误的图像(程序给它们占位符),下载而不是搜索时要花费很长时间才能完成。

因此,我试图为排除列表编写一个正则表达式,这将自动消除在不存在的日期范围中发现的任何内容。我甚至查过每个月有多少天,并确保在2月29日离开闰年。看啊。

代码语言:javascript
运行
复制
[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

结束

编辑

EN

回答 1

Stack Overflow用户

发布于 2013-06-25 01:30:11

根据批量用作regex引擎的内容,您可以尝试:

代码语言:javascript
运行
复制
example.com/[201301-201312](0[1-9]|[1-2][0-9]|3[0-1]).html

这将使您可以选择所选年份的有效月份。

代码语言:javascript
运行
复制
[201301-201312]

那么日期可以是01 - 09。

代码语言:javascript
运行
复制
0[1-9]

10-29

1-2

或30,31

代码语言:javascript
运行
复制
3[0-1]

将日期部分与or运算符组合为一个组。

代码语言:javascript
运行
复制
(0[1-9]|[1-2][0-9]|3[0-1])

如前所述,这一切合在一起,可能会持续一年。同样,这取决于他们决定使用哪个正则表达式引擎。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17214176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档