从一段HTML代码中找出所有图片链接地址,比如<img scr="http://aa/bb.gif">,要得到“http://aa/bb.gif”这个字符串。
  我现在正则是:
string reg = @"src=\""(http:\//)*(([.]*(\S|\s)+[.]*)+([\/])*)*(([.])(jpg|gif|bmp))*\""";
这个正则对有些HTML可以找出,有些又找不出来。不知道错在哪里?

解决方案 »

  1.   

    trystring reg = @"<img[^>]*src=(['""]?)[^'""\s>]*\1?[^>]*>";
      

  2.   

    好像不对啊,有时候匹配出"\"http://images.17173.com/hh/images/class/002.gif\" width=170" 这样的字符串。
    另外请教下 \1?[^>] 是什么意思啊?
      

  3.   

    \1 反向引用,引用的是第一个捕获组的内容,这里是为了src=后面“'”,“'”或者直接接网址这三种情况下,符号配对出现[^>] 这个表示不是“>”的任意一个字符