我尝试使用 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
。