<li><a href='asdsadas.htm' target='_blank'><img src='http://sdsds.jpg' alt='ddddddddd'/><br />sssssssss</a></li>

解决方案 »

  1.   


    (?is)(?<=\<a.*href=['"])[^>=]*(?=['"]{1}) //匹配 asdsadas.htm(?is)(?<=\<a.*)href=['"]?[^>='"]*['"]? //匹配 href='asdsadas.htm'
      

  2.   

                string str = "<li><a href='asdsadas.htm' target='_blank'><img src='http://sdsds.jpg' alt='ddddddddd'/><br />sssssssss</a></li>";
                Regex reg = new Regex(@"<a[^>]*?href=(['""\s]?)([^'""\s]+)\1[^>]*?>");
                foreach (Match m in reg.Matches(str))
                {
                    Response.Write(m.Groups[2].Value);
                }
    /*
    asdsadas.htm
    */
      

  3.   


                string str = "<li><a href='asdsadas.htm' target='_blank'><img src='http://sdsds.jpg' alt='ddddddddd'/><br />sssssssss</a></li>";
                Regex reg = new Regex(@"(?is)<a[^>]*?href=(['""\s]?)([^'""\s]+)\1[^>]*?>");
                foreach (Match m in reg.Matches(str))
                {
                    Response.Write(m.Groups[2].Value);
                }
    /*
    asdsadas.htm
    */
      

  4.   

      可不可以是这样 必须包含li , a , img 标签 
       获取a标签中的 href 
      

  5.   


                string str = "<li><a href='asdsadas.htm' target='_blank'><img src='http://sdsds.jpg'alt='ddddddddd'/><br />sssssssss</a></li><div><a href='div.htm' target='_blank'><img src='http://sdsds.jpg'alt='ddddddddd'/><br />sssssssss</a></div>";
                Regex reg = new Regex("(?is)(?<=\\<li.*\\>\\<a.*href=['\"])[^>=]*(?=['\"]{1}|<img.*\\/>\\<\\/li\\>)");            str = reg.Match(str).Value; //只会匹配li里边的asdsadas.htm   div里边的  div.htm不会匹配 
      

  6.   

    (<li>\s*<a\s*href=')([a-z0-9A-Z]*.htm)?('\s*target='_blank'>)
      

  7.   

    <li><a[^>]*?href=(['""\s])(?<href>[^'""\s]+)\1[^>]*?>?.*<img ?.*>?.*</a></li>
      自己这样写了一个  但是 如果很多 
    <li><a href='asdsadas.htm' target='_blank'><img src='http://sdsds.jpg' alt='ddddddddd'/><br />sssssssss</a></li>
    <li><a href='asdsadas.htm' target='_blank'><img src='http://sdsds.jpg' alt='ddddddddd'/><br />sssssssss</a></li>
    <li><a href='asdsadas.htm' target='_blank'><img src='http://sdsds.jpg' alt='ddddddddd'/><br />sssssssss</a></li>  放在一起的话 它只会取到第一个。。
      

  8.   


                string str = @"<div><a href='div.htm' target='_blank'><img src='http://sdsds.jpg'alt='ddddddddd'/><br />sssssssss</a></div><li><a href='asdsadas.htm' target='_blank'><img src='http://sdsds.jpg' alt='ddddddddd'/><br />sssssssss</a></li>
    <li><a href='asdsadas.htm' target='_blank'><img src='http://sdsds.jpg' alt='ddddddddd'/><br />sssssssss</a></li>
    <li><a href='asdsadas.htm' target='_blank'><img src='http://sdsds.jpg' alt='ddddddddd'/><br />sssssssss</a></li>";
                Regex reg = new Regex("(?is)(?<=\\<li.*\\>\\<a.*href=['\"])[^>=]*(?=['\"]{1}|<img.*\\/>\\<\\/li\\>)");            MatchCollection mction = reg.Matches(str);
                foreach (Match mc in mction)
                {
                    Response.Write(mc.Value);//只会匹配li里边的asdsadas.htm   div里边的  div.htm不会匹配
                }
      

  9.   

      刚测试了一下 没有li的也匹配 a标签里面没有img标签的也匹配 
      

  10.   

      我的正则匹配条件是 a标签的包含在li标签中  a标签同时必须包含img标签 的 a标签的链接
      <li><a href='asdsadas.htm' target='_blank'><img src='http://sdsds.jpg' alt='ddddddddd'/><br />sssssssss</a></li>  匹配这样的话
      

  11.   

    就你当前的例子,可以用下面的正则,有不符合的给出实例Regex reg = new Regex(@"(?is)<li[^>]*>\s*<a[^>]*?href=(['""]?)(?<url>[^\s'"">]*)\1[^>]*>\s*<img[^>]*>.*?</a>\s*</li>");
    MatchCollection mc = reg.Matches(yourStr);
    foreach (Match m in mc)
    {
        richTextBox2.Text += m.Groups["url"].Value + "\n";
    }
      

  12.   

               string str = "<li><a href='1.htm' target='_blank'>sssssssss</a></li>"
                    + "<li><a href='2.htm' target='_blank'><img src='http://sdsds.jpg' alt='ddddddddd'/><br />sssssssss</a></li>"
                    + "<a href='3.htm' target='_blank'><img src='http://sdsds.jpg' alt='ddddddddd'/><br />sssssssss</a>"
                    + "<li><a href='4.htm' target='_blank'><img src='http://sdsds.jpg' alt='ddddddddd'/><br />sssssssss</a></li>";
                Regex reg = new Regex(@"(?is)<li[^>]*?>\s*<a[^>]*?href=(['""\s]?)([^'""\s]+)\1[^>]*?><img[^>]*?>.*?</a>\s*</li>");
                foreach (Match m in reg.Matches(str))
                {
                    Response.Write(m.Groups[2].Value + "<br/>");
                }
    /*
    2.htm
    4.htm
    */