日期:2014-05-18 浏览次数:20489 次
string str = @"<a href=""xx.xx"">xx</a><a href=""xx.xx"">xx</a> <div>不确定字符串<a href=""1.xx"">xx</a>不确定字符串<a href=""2.xx"">xx</a>不确定字符串</div> <p><a href=""xx.xx"">xx</a><a href=""xx.xx"">xx</a></p>"; Regex reg = new Regex(@"(?is)<div[^>]*?>(?:.*?<a[^>]*?href=(['""\s]?)([^'""\s]+)\1[^>]*?>.*?</a>)*.*?</div>"); foreach (Capture c in reg.Match(str).Groups[2].Captures) Console.WriteLine(c.Value); Regex reg1 = new Regex(@"(?is)(?<=<div[^>]*?>(?:(?!</?div).)*)<a[^>]*?href=(['""\s]?)([^'""\s]+)\1[^>]*?>"); foreach (Match m in reg1.Matches(str)) Console.WriteLine(m.Groups[2].Value);
------解决方案--------------------
如果有个test的ID,这样应该是可以的
Regex re = new Regex("<div[^>]*id=\"test\">[^<]+<a\\s*href=\"([^\"]+)\">[^<]+</a>[^<]+<a\\s*href=\"([^\"]+)\">[^<]+</a>[^<]+</div>", RegexOptions.None);