使用 wget 和正则表达式有选择地下载文件在 /i 上失败



我尝试使用 wget 和正则表达式获取特定文件。

这些文件是信息图表.jpg和信息学.jpg

这里是命令行:

wget -r -nd -P test -A jpg --accept-regex '.*/i.*.jpg'

它下载它能找到的每个jpg,而不仅仅是以"i"开头的两个文件。

如果我在"i"后面添加一个"n"...

wget -r -nd -P test -A jpg --accept-regex '.*/in.*.jpg'

。这非常有效,下载以"in"开头的两个文件。

但不是其他。我发现"/i"表示不区分大小写。所以我尝试了不同的方法来确保"i"被当作一个字母,而不是一个开关,比如"[i]",......没有运气。

这是/i 问题吗?我可以摆脱它吗?

更可能是因为正则表达式的贪婪。您的匹配从开始到i(可能存在于路径上,而不是文件名中),然后直到.jpg字符序列 - 不能在末尾。所以你需要稍微限制一下正则表达式:

/i[^/]*.jpg$

这将紧跟i/匹配,然后不跳过URL的不同部分([^/]*,仅文件名)结束到也满足URL末尾的.jpg

最新更新