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

zell419 2012-02-15 09:57:05
页面上面有很多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 。


用两条正则 我会,一条的能搞定么 ?
...全文
94 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zell419 2012-02-15
  • 打赏
  • 举报
回复
谢谢huangwenquan123 ,porschev 。
多个huangwenquan123点分了,下次直接请教你了 ,学习了 !
porschev 2012-02-15
  • 打赏
  • 举报
回复

如果有个test的ID,这样应该是可以的


Regex re = new Regex("<div[^>]*id=\"test\">[^<]+<a\\s*href=\"([^\"]+)\">[^<]+</a>[^<]+<a\\s*href=\"([^\"]+)\">[^<]+</a>[^<]+</div>", RegexOptions.None);

huangwenquan123 2012-02-15
  • 打赏
  • 举报
回复

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);
zell419 2012-02-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 pmaikej 的回复:]

帮楼主顶,学习中,楼主是不是要写采集器呀
[/Quote]
谢谢哈。恩恩。

ps:顺便说下 <div>可以有个id什么的 。
<div id="test"> </div>这样 ~
pmaikej 2012-02-15
  • 打赏
  • 举报
回复
帮楼主顶,学习中,楼主是不是要写采集器呀

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧