<a href="1.html"><img src="1.jpg" alt="图片"></a>
<a href="1.html"><img src="2.jpg" ></a>
<a href="1.html"><img src="3.jpg" class="a"></a>我想用正则表达式来匹配获取到这3条数据。请问下正则表达式要怎么写其实我最主要是想获得连接地址 跟图片地址。一条会写。页面上出现3条这样的数据。请问下要怎么写。帮帮忙。正则

解决方案 »

  1.   

    <a\s*href="(?<url>[^"]*)"><img\s*src="(?<imgsrc>[^"]*)"
      

  2.   


    string str = @"
    <a href=""1.html""><img src=""1.jpg"" alt=""图片""></a>
    <a href=""1.html""><img src=""2.jpg"" ></a>
    <a href=""1.html""><img src=""3.jpg"" class=""a""></a>";            Regex reg = new Regex("<a href=\"(?<url>[^\"]+)\"><img src=\"(?<img>[^\"]+)");
                foreach (Match m in reg.Matches(str))
                {
                    Console.WriteLine("网址:{0}   图片:{1}", m.Groups["url"].Value, m.Groups["img"].Value);
                }
      

  3.   


    //你的IMG标签结束不是 /> ????
    (?is)<a[^>]*href=(["'])(?<url>.*?)\1[^>]*><img[^/>]*src=["'].*?["'][^/>]*/?></a>
      

  4.   

    //取分组名  url 与 imgurl
    (?is)<a[^>]*href=(["'])(?<url>.*?)\1[^>]*><img[^/>]*src=["'](?<imgurl>.*?)["'][^/>]*/?></a>
      

  5.   

    //取分组名  url 与 imgurl
    (?is)<a[^>]*href=(["'])(?<url>.*?)\1[^>]*><img[^/>]*src=["'](?<imgurl>.*?)["'][^/>]*/?></a>
    我不知道怎么回事。
    我用string str="(?is)<a[^>]*href=(["'])(?<url>.*?)\1[^>]*><img[^/>]*src=["'](?<imgurl>.*?)["'][^/>]*/?></a>"; 出现*src=["'](?<imgurl>.*?)["'][^/>]*/?></a>这里的错误。
      

  6.   

    //取分组名  url 与 imgurl
    (?is)<a[^>]*href=(["'])(?<url>.*?)\1[^>]*><img[^/>]*src=["'](?<imgurl>.*?)["'][^/>]*/?></a>
    我不知道怎么回事。
    我用string str="(?is)<a[^>]*href=(["'])(?<url>.*?)\1[^>]*><img[^/>]*src=["'](?<imgurl>.*?)["'][^/>]*/?></a>"; 出现*src=["'](?<imgurl>.*?)["'][^/>]*/?></a>这里的错误。“ 和 \ 要转义下。
    string reg = "(?is)<a[^>]*href=([\"'])(?<url>.*?)\\1[^>]*><img[^/>]*src=[\"'](?<imgurl>.*?)[\"'][^/>]*/?></a>";
      

  7.   

    <a\shref="(?<href>.*?)"><img src="(?<src>.*?)"