使用wget和regex选择性地下载文件会在/ i上失败

时间:2018-04-22 08:42:46

标签: regex wget

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

文件是infographics.jpg和informatics.jpg

这里是命令行:

<script type="text/javascript">
  if(jQuery('#soldBtn').data('clicked')) {
    document.getElementById("confirmBtn").href="{%url 'laptops:sale'%}";
}
</script>

它下载它可以找到的每个jpg,而不只是下载以“i”开头的两个文件。

如果我在“i”之后添加“n”......

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

...完美无缺,下载以“in”开头的两个文件。

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

这是一个/我的问题吗?我可以摆脱它吗?

1 个答案:

答案 0 :(得分:1)

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

/i[^/]*\.jpg$

这匹配/紧跟一个i,然后不跳过网址的不同部分([^/]*,仅限文件名)结束到符合网址末尾的.jpg同样。