原字符串类似于这样
有图片链接的a标签,有文字的标签<a href="1.html"><img src ..></a> <a href="1.html">文字</a><a href="2.html"><img src ..></a> <a href="2.html">文字</a>
<a href="3.html"><img src ..></a> <a href="3.html">文字</a>我想取出有图片的那几组字符串我使用的正则为  (?i)<a[\s\S]*?><img[\s\S]*?</a>取的第一个还正确,但取第二个的时候就是得到这些字符串了<a href="1.html">文字</a><a href="2.html"><img src ..></a>
请高手帮帮忙,感激不尽,

解决方案 »

  1.   


    (?is)<a[^>]*><img(?><a[^>]*>(?<Open>)|</a>(?<-Open>)|(?:(?!</?a\b).)*)*(?(Open)(?!))</a>
    试试
      

  2.   

    Regex reg = new Regex(@"(?is)(?<=<img)[^>]*?(?=>)");
      

  3.   

    (?i)<a\b[^>]*?><img\b[^>]*?></a>
      

  4.   

    Regex re = new Regex(@"<a[^>]*><img[^>]*></a>", RegexOptions.Singleline);
    MatchCollection mc = re.Matches("text");
    foreach (Match ma in mc)
    {
    }虽然这个能满足你的需求,但是复杂点的环境就不行了.推荐个博文个楼主,如果学习完,这种平衡组问题很容易解决
    http://blog.csdn.net/lxcnn/article/details/4402808