正则表达式取ul下面的li的值

wh110 2012-10-30 01:27:48
远程获取的源代码如下:

<ul class=\"listnew\">\r\n \r\n <li>\r\n <a href=\"html/2012-10-30/85775.shtml\" target=\"_blank\">建筑学专业办学30周年庆典举行[<font color=red>图</font>]</a>\r\n <font color=\"#aaaaaa\">2012-10-30</font></li>\r\n \r\n <li>\r\n <a href=\"html/2012-10-29/85761.shtml\" target=\"_blank\">舟山市代表团来校访问[<font color=red>图</font>]</a>\r\n <font color=\"#aaaaaa\">2012-10-29</font></li>\r\n \r\n <li>\r\n <a href=\"html/2012-10-29/85760.shtml\" target=\"_blank\">我校与西电集团共建国家级工程实践教育中心[<font color=red>图</font>]</a>\r\n <font color=\"#aaaaaa\">2012-10-29</font></li>\r\n \r\n <li>\r\n <a href=\"html/2012-10-
26/85722.shtml\" target=\"_blank\">我校新添一项2012年国家社科基金重大项目</a>\r\n <font color=\"#aaaaaa\">2012-10-26</font></li>\r\n \r\n</ul>


我远程取到的数据如上图,我用如下正则取LI的值,
Regex GetLi =new Regex(@"<li><a href=""html/2012-10-29/85761.shtml"" target=""_blank"">(?<item1>[^/]+)</a><font color=""#aaaaaa"">(?<item2>[^/]+)</font></li>");

但我一条都取不到。我想达到的效果是取到li的文字,url,li里面的两个font里面的值

拿第一条为例

<li><a href=\"html/2012-10-30/85775.shtml\" target=\"_blank\">建筑学专业办学30周年庆典举行[<font color=red>图</font>]</a><font color=\"#aaaaaa\">2012-10-30</font></li><li>

取到1.html/2012-10-30/85775.shtml 2.建筑学专业办学30周年庆典举行 3.[图] 4.2012-10-30

我该如何写这个正则表达式。
...全文
323 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wh110 2012-10-31
  • 打赏
  • 举报
回复
终于搞定了,呵呵
wh110 2012-10-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

string pattern=@"<li><a\s*href=""([^""]+?)""\s*target=""_blank"">(.+?)\[<font\s*color=red>(.*?)</font>\]</a><font\s*color=""#aaaaaa"">([^<]+?)</font></li>";
分别取Groups[1].Value,Groups[2].Value,Groups……
[/Quote]
你这个不行,取不到值

<a(?:\\s+.+?)*?\\s+href=\"([^\"]*?)\".+>(.*?)</a> 我用这个可以取到href值,但groups[2]标题文字却取只取到了groups[3]的一个“]”
EnForGrass 2012-10-30
  • 打赏
  • 举报
回复
string pattern=@"<li><a\s*href=""([^""]+?)""\s*target=""_blank"">(.+?)\[<font\s*color=red>(.*?)</font>\]</a><font\s*color=""#aaaaaa"">([^<]+?)</font></li>";
分别取Groups[1].Value,Groups[2].Value,Groups[3].Value,Groups[4].Value
XBodhi. 2012-10-30
  • 打赏
  • 举报
回复


<li><a href=\"html/2012-10-30/85775.shtml\" target=\"_blank\">建筑学专业办学30周年庆典举行[<font color=red>图</font>]</a><font color=\"#aaaaaa\">2012-10-30</font></li>


<li><a href=\"html/[\d,4]-[\d,2]-[\d,2]/[\d+].shtml\" target=\"_blank\">\w+[<font color=red>\u</font>]</a><font color=\"#aaaaaa\">[\d,4]-[\d,2]-[\d,2]</font></li>



最后你在用 replace 这 <li><a href= 没有用的 字符去掉。就得到你想要的 了
wh110 2012-10-30
  • 打赏
  • 举报
回复
主要是取得的数据里面有\r\n这样的换行符,一直都取不到实际值
wh110 2012-10-30
  • 打赏
  • 举报
回复
<li><a href=(?<url>[^\""]+) target=""_blank"">(?<item1>[^\[]+)</a><font color=""#aaaaaa"">(?<item2>[^<]+)</font></li>
wh110 2012-10-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

Regex GetLi =new Regex(@"<li><a href=\"(?<url>[^\"]+)\" target=""_blank"">(?<item1>[^\[]+)</a><font color=\"#aaaaaa\">(?<item2>[^<]+)</font></li>");
[/Quote]

你这个格式有点问题,能不能麻烦再帮我处理一下
漂泊_DY 2012-10-30
  • 打赏
  • 举报
回复
Regex GetLi =new Regex(@"<li><a href=\"(?<url>[^\"]+)\" target=""_blank"">(?<item1>[^\[]+)</a><font color=\"#aaaaaa\">(?<item2>[^<]+)</font></li>");

62,243

社区成员

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

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

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

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