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

正则表达式取ul下面的li的值
远程获取的源代码如下:
C# code

<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
 
我该如何写这个正则表达式。


------解决方案--------------------
Regex GetLi =new Regex(@"<li><a href=\"(?<url>[^\"]+)\" target=""_blank"">(?<item1>[^\[]+)</a><font color=\"#aaaaaa\">(?<item2>[^<]+)</font></li>");
------解决方案--------------------
C# code


<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>

------解决方案--------------------
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