首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

请问c#正则提取,继续麻烦各位

2012-03-12 
请教c#正则提取,继续麻烦各位。页面上面有很多a链接,而我只要某个div下面的a,这些a又没有什么特殊的标记。比

请教c#正则提取,继续麻烦各位。
页面上面有很多a链接,而我只要某个div下面的a,这些a又没有什么特殊的标记。
比如:
<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>

我只要1.xx 和2.xx 。


用两条正则 我会,一条的能搞定么 ?

[解决办法]
帮楼主顶,学习中,楼主是不是要写采集器呀
[解决办法]

C# code
            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,这样应该是可以的
C# code
Regex re = new Regex("<div[^>]*id=\"test\">[^<]+<a\\s*href=\"([^\"]+)\">[^<]+</a>[^<]+<a\\s*href=\"([^\"]+)\">[^<]+</a>[^<]+</div>", RegexOptions.None); 

热点排行