Regex 图片网址 = new Regex(@"<img\b[^<>]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?[\s\t\r\n]*(?<imgUrl>[^\s\t\r\n""'<>]*)[^<>]*?/?[\s\t\r\n]*>", RegexOptions.IgnoreCase);
上面正则好像不太正确,不是图片的网址也存在,正确的是怎么写?

解决方案 »

  1.   

    (?i)<img[^>]*?src=(['""])(?<imgUrl>[^'""]+?)\1[^>]*?>
      

  2.   

    复制本页出行http://counter.csdn.net/pv.aspx?id=185网址,还有正确的没?
      

  3.   

    全选复制本页做测试,出现http://counter.csdn.net/pv.aspx?id=185网址,你试看。
      

  4.   

    对啊,没错啊<img alt="" src="http://counter.csdn.net/pv.aspx?id=185" border="0" width="0" height="0" style="display: none" />src就是http://counter.csdn.net/pv.aspx?id=185
      

  5.   

    你大概是想要以bmp,jpg,jpeg,png,gif为结尾的url吧?
     @"(?i)<img[^>]*?src=(['""])(?<imgUrl>[^'""]+?\.(jpe?g|gif|png|bmp))\1[^>]*?>"
                
      

  6.   

    出现/u/ui/images/blank.gif无效网址了。
      

  7.   

    @"(?i)<img[^>]*?src=(['""])(?<imgUrl>http://[^'""]+?\.(jpe?g|gif|png|bmp))\1[^>]*?>"
      

  8.   

    出现/u/ui/images/blank.gif无效网址能解决不?
      

  9.   

    你应该告诉我们你要匹配的内容都有怎样的格式,然后你想匹配出怎样的格式还是看看正则表达式吧http://blog.csdn.net/lxcnn/article/category/538256
      

  10.   

    嗯,是这样的,我做了个收集资料的软件自己用的,有些资料有图片,想复制内容包括图片同时复制,用正则取出图片网址放在RichTextBox控件另存,6楼正则可以用,就是还有错误弹出,就是这个/u/ui/images/blank.gif无效网址,能解决就好了。代码可以给大家共享,如下:            this.Invoke(new Action(() =>
                {
                    IDataObject 粘贴数据 = Clipboard.GetDataObject();
                    Object 网址 = 粘贴数据.GetData(DataFormats.Html);
                    List<string> 图片集 = new List<string>();
                    Regex 图片网址 = new Regex(@"(?i)<img[^>]*?src=(['""])(?<imgUrl>[^'""]+?\.(jpe?g|gif|png|bmp|tiff|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw))\1[^>]*?>", RegexOptions.IgnoreCase);
                    if (网址 != null)
                    {
                        MatchCollection 集合 = 图片网址.Matches(网址.ToString());
                        foreach (Match 元素 in 集合) 
                            图片集.Add(元素.Groups["imgUrl"].Value);
                        foreach (string 图址 in 图片集)
                        {
                            Image 获取网络图片 = Image.FromStream(WebRequest.Create(图址).GetResponse().GetResponseStream());
                            Clipboard.SetImage(获取网络图片); if (粘贴数据.GetDataPresent(DataFormats.Bitmap)) 富文本编辑.Paste();
                        }
                    }
                }));这种方法能把图片添加在文章最后,然后通过移动或剪切图片到正确位置,虽说有些不便,但还是差强人意可以编辑,何况文字内容有时也需要整理后保,这个方法最大的遗憾就是图片不能粘贴在原位;
    如果谁有方法能把图片粘贴在原位就完美了,谁有代码的话拿出来共享一下,还有看看我这个代码是否可以优化。
      

  11.   

            private void 粘贴_Click(object sender, EventArgs e)
            {
                this.BeginInvoke(new Action(() =>
                {
                    try
                    {
                      /*上面代码这样捕获404异常通过WebException*/
                    }
                    catch (WebException Ts)
                    {
                        MessageBox.Show("请重新选择图片!" + Ts.ToString().Substring(0, Ts.ToString().IndexOf("在") - 1), "遗憾!无法获取图片数据?");
                    }
                }));
            }