如题:只要里面的图片地址,外边的都不要  例如:<img src="img.30h.cn/30h/img_dy30h_left_bjldg.gif">
只要  img.30h.cn/30h/img_dy30h_left_bjldg.gif 这部分。
<img src=img.30h.cn/30h/img_dy30h_left_bjldg.gif>
<img src=‘img.30h.cn/30h/img_dy30h_left_bjldg.gif'>都要匹配。。

解决方案 »

  1.   

    try...Regex reg = new Regex(@"(?is)(?<=<img\b(?:(?!src=).)*src=(['""]?))[^'""\s>]+(?=\1[^>]*>)");
    MatchCollection mc = reg.Matches(yourStr);
    foreach (Match m in mc)
    {
        richTextBox2.Text += m.Value + "\n";
    }
      

  2.   

    <img\s*src='?(?<src>[^>|']*)'?>
      

  3.   

    <img(?<Attributes1>[\s\S]*?)src=("{1}|'{1}|)(?<picture>[^\[^>]*?(gif|jpg|jpeg|bmp|bmp))("{1}|'{1}|)(?<Attributes2>[\s\S]*?)><img (.*?)src=(.[^\[^>]*)(.*?)>System.Text.RegularExpressions.Regex  reg=new  System.Text.RegularExpressions.Regex(@" <img[^>].*?src=""(? <src>[^""].*)""[^>].*?>",System.Text.RegularExpressions.RegexOptions.IgnoreCase);  
    System.Text.RegularExpressions.MatchCollection m = reg.Matches(str); 
                for (int i = 0; i < m.Count; i++) 
                { 
                          stes[i]= m[i].Groups["src"].ToString();            } 
      

  4.   

     string[] str =new string[]{ "<img src=UploadFile/FCKeditor/image/123.jpg>","<img src='UploadFile/FCKeditor/image/123.jpg'>"};
                Regex re = new Regex(@"<img\s*src='?(?<src>[^>|']*)");
                foreach (string s in str)
                {
                    Console.WriteLine(re.Match(s).Groups["src"].Value);
                }