【问题标题】:regex to strip out image urls?正则表达式去除图片网址?
【发布时间】:2010-11-11 13:45:05
【问题描述】:

我需要从一个文档中分离出一堆图像 url,其中图像与这样的名称相关联:

bellpepper = "http://images.com/bellpepper.jpg"
cabbage = "http://images.com/cabbage.jpg"
lettuce = "http://images.com/lettuce.jpg"
pumpkin = "http://images.com/pumpkin.jpg"

我假设我可以检测到链接的开头:

/http:[^ ,]+/i

但是我怎样才能将所有链接从文档中分离出来呢?

编辑:为了澄清这个问题:我只想从文件中去掉 URL 减去变量名、等号和双引号,所以我有一个新文件,它只是一个 URL 列表,每行一个。

【问题讨论】:

  • 就像从文档中删除它们并将它们放入新文档中一样?
  • 我想从文件中删除除图像 URL 之外的所有内容。

标签: regex url parsing image


【解决方案1】:

如果您的工具支持正向后视,您可以试试这个:

/(?<=")[^"\n]+/

【讨论】:

    【解决方案2】:

    试试这个...

    (http://)([a-zA-Z0-9\/\\.])*
    

    【讨论】:

      【解决方案3】:

      您的意思是说您的文档中有这种格式并且您只想获取 http 部分吗?您可以在没有正则表达式的情况下拆分“=”分隔符

      $f = fopen("file","r");
      if ($f){
          while( !feof($f) ){
              $line = fgets($f,4096);
              $s = explode(" = ",$line);
              $s = preg_replace("/\"/","",$s);
              print $s[1];
          }
          fclose($f);
      }
      

      在命令行上:

      #php5 myscript.php > newfile.ext
      

      如果您使用 PHP 以外的其他语言,您可以使用类似的字符串拆分方法。例如 Python/Perl 的 split()。请阅读您的文档以了解

      【讨论】:

      • 我只想从文件中去掉 URL 减去变量名、等号和双引号,所以我有一个新文件,它只是一个 URL 列表,每行一个。
      【解决方案4】:

      如果格式是恒定的,那么这应该可以工作(python):

      import re
      s = """bellpepper = "http://images.com/bellpepper.jpg" (...) """
      re.findall("\"(http://.+?)\"", s)
      

      注意:这不是“在文件中查找图像”正则表达式,只是问题的答案:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-14
        • 2014-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多