因为正则不是很熟,特请大侠们看下这个正则应该怎么写!
<img src="http://www.inluxe.cn/assets/shared/images/grey0.gif" original="/uploads/news/2012/03/salvatore-ferragamo-02_1.jpg">
<div class="box page_details">
<h4>最新新闻 Latest News</h4>
<div class="mainleft ">
<h1>菲拉格慕 Salvatore Ferragamo 盛大举行 Signorina 香氛发布会</h1>
<p style="margin-top:-20px; margin-bottom:20px;">发布日期:2012/3/25</p>
<div class="details h20 lazyload">
<p>
<p>当地时间3月20日,菲拉格慕(Salvatore Ferragamo)为新款香氛Signorina在纽约举行盛大发布会。当晚发布会现场星光璀璨,众星云集,包括Emma Roberts、Annasophia Robb、Courtney Love、Kate Mara、Bianca Balti、the Brant Brothers等在内的明星均盛装亮相助阵。</p>
<p>
<img alt="Salvatore Ferragamo 02 1" src="http://www.inluxe.cn/assets/shared/images/grey.gif" original="/uploads/news/2012/03/salvatore-ferragamo-02_1.jpg">
</p>
</div>
<img src="http://www.inluxe.cn/assets/shared/images/grey2.gif" original="/uploads/news/2012/03/salvatore-ferragamo-02_1.jpg">是这样的,因为里面文章一共有三个图片地址,我自己有写这个正则:<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>,但是这个是获取当前页所有的图片地址,也即是说上面一共有三个图片地址,他都获取到了,但是我的要求仅仅是获取上面内容<div class="box page_details">标签里面的图片:也就是仅仅只获取“<img alt="Salvatore Ferragamo 02 1" src="http://www.inluxe.cn/assets/shared/images/grey.gif" original="/uploads/news/2012/03/salvatore-ferragamo-02_1.jpg">”这个图片的地址,希望大侠们帮帮忙,给点意见。

解决方案 »

  1.   

    (?is)<div\s*class="box page_details">(.*)(?<img><[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg]))[\'|\"].*?[\/]?>)(.*)</div>你取m.Group["img"].Value就行了
      

  2.   

     Regex re = new Regex(@"(?is)(?<=<div\s*class=""box page_details"">.*?<img\s*alt=""[^""]+""\s*src="")[^""]+(?="".*?</div>)", RegexOptions.None);
    string str = re.Match("你要提取的字符串").Value;//结果:http://www.inluxe.cn/assets/shared/images/grey.gif
      

  3.   

         static void Main(string[] args)
                {
                    string str = @"<img src=""http://www.inluxe.cn/assets/shared/images/grey0.gif"" original=""/uploads/news/2012/03/salvatore-ferragamo-02_1.jpg"">
    <div class=""box page_details"">
    <h4>最新新闻 Latest News</h4>
    <div class=""mainleft "">
    <h1>菲拉格慕 Salvatore Ferragamo 盛大举行 Signorina 香氛发布会</h1>
    <p style=""margin-top:-20px; margin-bottom:20px;"">发布日期:2012/3/25</p>
    <div class=""details h20 lazyload"">
    <p>
    <p>当地时间3月20日,菲拉格慕(Salvatore Ferragamo)为新款香氛Signorina在纽约举行盛大发布会。当晚发布会现场星光璀璨,众星云集,包括Emma Roberts、Annasophia Robb、Courtney Love、Kate Mara、Bianca Balti、the Brant Brothers等在内的明星均盛装亮相助阵。</p>
    <p>
    <img alt=""Salvatore Ferragamo 02 1"" src=""http://www.inluxe.cn/assets/shared/images/grey.gif"" original=""/uploads/news/2012/03/salvatore-ferragamo-02_1.jpg"">
    </p>
    </div>
    <img src=""http://www.inluxe.cn/assets/shared/images/grey2.gif"" original=""/uploads/news/2012/03/salvatore-ferragamo-02_1.jpg"">
    ";                Regex re = new Regex(@"(?is)<div\s*class=""box page_details"">.*?(<img\s*alt=""[^""]+""\s*src=""([^""]+)""\s*original=""([^""]+)"">).*?</div>", RegexOptions.IgnoreCase);
                    Match ma = re.Match(str);                Console.WriteLine(ma.Groups[1].Value);
    //Groups1结果:<img alt="Salvatore Ferragamo 02 1" src="http://www.inluxe.cn/assets/shared/images/grey.gif" original="/uploads/news/2012/03/salvatore-ferragamo-02_1.jpg">
                    Console.WriteLine(ma.Groups[2].Value);
    //Group2结果:http://www.inluxe.cn/assets/shared/images/grey.gif
                    Console.WriteLine(ma.Groups[3].Value);
    //group3结果:/uploads/news/2012/03/salvatore-ferragamo-02_1.jpg
                    Console.WriteLine();
                                Console.ReadLine();
                                                  
                }
      

  4.   


     string patern = "(?is)<div\\s*class=\"box page_details\"\\s*>(.*)?(?<img><[img|IMG].*?src=[\'|\"](.*?(?:[.gif|.jpg]))[\'|\"].*?[/]?>)(.*)?</div>";
                string tempStr = File.ReadAllText(@"C:\3.txt", Encoding.GetEncoding("GB2312"));//tempStr 就是你的字符串
                Regex re = new Regex(patern);
                List<string> lists = new List<string>();
                MatchCollection sr = re.Matches(tempStr);            foreach (Match me in sr)
                {
                    lists.Add(me.Groups["img"].Value);//结果在lists
                }