日期:2014-05-17  浏览次数:20571 次

求正则表达式,大人们
1:获取了某网站的Html代码
2:代码中包含很多类似于<div style="white-space:nowrap; padding-left:em;"><img src="themes/77gu/images/circle.gif" alt="something" /><a href="2.html">促销专购</a></div>


我现在想把这些div先获取到,然后在获取div里面的<a href="2.html">促销专购</a>,最终的目的是
获取2.html和“促销专购”

谢谢

------解决方案--------------------
(?is)<div[^>]*?><img\b[^>]*?src=(["']?)([^"']*?)\1[^>]*?/>(?<Linlk><a[^>]*href=(["']?)([^"']*?)\3[^>]*?>(.*?)</a>)</div>
C# code

 string input = @"<div style=""white-space:nowrap; padding-left:em;""><img src=""themes/77gu/images/circle.gif"" alt=""something"" /><a href=""2.html"">促销专购</a></div>";
            string pattern = @"(?is)<div[^>]*?><img\b[^>]*?src=([""']?)([^""']*?)\1[^>]*?/>(?<Link><a[^>]*href=([""']?)([^""']*?)\3[^>]*?>(.*?)</a>)</div>";
            foreach (Match m in Regex.Matches(input, pattern))
            {
                Response.Write(m.Value);
                Response.Write(m.Groups["Link"].Value);
                Response.Write(m.Groups[4].Value);
                Response.Write(m.Groups[5].Value);
            }