<td class="f"><h3 class="t"><a onmousedown="return c({'fm':'as'})" href="http://photo.zol.com.cn/photo/15515263.html" target="_blank"><em>www</em>-<em>8kmm</em>-<em>com</em>-new (1)-中国美女-ZOL相册</a><span class="tsuf"><span style="position: relative; "><div class="fav_tip"></div></span></span> </h3> <font size="-1"> <em>www</em>-<em>8kmm</em>-<em>com</em>-new (1) 中国美女 返回该相册 浏览:7次 评论:0次 被推荐:0次 我要推荐插入表情 *ctrl+Enter快速回复 ...<br> <span class="g"> photo.zol.com.cn/photo/15515263.html 2012-7-20 </span> - <a href="#" target="_blank" class="m"> 百度快照</a><span class="liketip" id="like_4537213515679560947"></span><br> </font></td> <td class="f"><h3 class="t"><a onmousedown="return c({'y':'BFBFF55B'})" href="http://v.pps.tv/ugc/tag-t1568980.html" target="_blank"><em>www</em>-<em>8kmm</em>-<em>com</em>视频 PPS 在线视频</a><span class="tsuf"><span style="position: relative; z-index: 1000; "><div class="fav_tip"></div></span></span> </h3> <font size="-1"> 查看包含“<em>www</em>-<em>8kmm</em>-<em>com</em>” 标签的视频,共2个视频标签:<em>www</em>-<em>8kmm</em>-<em>com</em>... Copyright 2005 - 2012 PPStream, Inc. All Rights Reserved...<br> <span class="g"> v.pps.tv/ugc/tag-t1568980.html 2012-7-25 </span> - <a href="#" target="_blank" class="m"> 百度快照</a><span class="liketip" id="like_7995101785469501244"></span><br> </font></td>
1. 需要获取a标签的链接地址、 文本内容;
2. <font size="-1"> 里面的内容;
3. 获取 2012-7-20 这一个位置日期的值。
为什么我的:
MatchCollection mctable = Regex.Matches(html, "<td class=\"f\">(.*)</td>",RegexOptions.Multiline|RegexOptions.IgnoreCase)
取不到内容。
(?i)(?s)<td class="f">.*?<a\s+.*?href="(?<href>.*?)"\s+target="_blank">(?<atext>.*?)</a>.*?\s+</h3>\s+<font\s+size="-1">\s+(?<fonts>.*?)...<br>\s+<span\s+class="g">\s+.*?\s+(?<date>\d{4}-\d{1,2}-\d{1,2})\s+</span>?\s+-\s+<a\s+.*?>\s+百度快照</a>.*?</font></td>
但是没有处理em标签
有完整的语句段没啊?
@问天何必: 有完整的语句段没啊??? 什么意思啊?
@HJN:
把你的代码贴一下呀, em我自己处理。
@问天何必:
string pattern = "(?i)(?s)<td class=\"f\">.*?<a\\s+.*?href=\"(?<href>.*?)\"\\s+target=\"_blank\">(?<atext>.*?)</a>.*?\\s+</h3>\\s+<font\\s+size=\"-1\">\\s+(?<fonts>.*?)...<br>\\s+<span\\s+class=\"g\">\\s+.*?\\s+(?<date>\\d{4}-\\d{1,2}-\\d{1,2})\\s+</span>?\\s+-\\s+<a\\s+.*?>\\s+百度快照</a>.*?</font></td>"; Regex reg = new Regex(pattern); string input = "<td class=\"f\"><h3 class=\"t\"><a onmousedown=\"return c({'fm':'as'})\" href=\"http://photo.zol.com.cn/photo/15515263.html\" target=\"_blank\"><em>www</em>-<em>8kmm</em>-<em>com</em>-new (1)-中国美女-ZOL相册</a><span class=\"tsuf\"><span style=\"position: relative; \"><div class=\"fav_tip\"></div></span></span> </h3> <font size=\"-1\"> <em>www</em>-<em>8kmm</em>-<em>com</em>-new (1) 中国美女 返回该相册 浏览:7次 评论:0次 被推荐:0次 我要推荐插入表情 *ctrl+Enter快速回复 ...<br> <span class=\"g\"> photo.zol.com.cn/photo/15515263.html 2012-7-20 </span> - <a href=\"#\" target=\"_blank\" class=\"m\"> 百度快照</a><span class=\"liketip\" id=\"like_4537213515679560947\"></span><br> </font></td><td class=\"f\"><h3 class=\"t\"><a onmousedown=\"return c({'y':'BFBFF55B'})\" href=\"http://v.pps.tv/ugc/tag-t1568980.html\" target=\"_blank\"><em>www</em>-<em>8kmm</em>-<em>com</em>视频 PPS 在线视频</a><span class=\"tsuf\"><span style=\"position: relative; z-index: 1000; \"><div class=\"fav_tip\"></div></span></span> </h3> <font size=\"-1\"> 查看包含“<em>www</em>-<em>8kmm</em>-<em>com</em>” 标签的视频,共2个视频标签:<em>www</em>-<em>8kmm</em>-<em>com</em>... Copyright 2005 - 2012 PPStream, Inc. All Rights Reserved...<br> <span class=\"g\"> v.pps.tv/ugc/tag-t1568980.html 2012-7-25 </span> - <a href=\"#\" target=\"_blank\" class=\"m\"> 百度快照</a><span class=\"liketip\" id=\"like_7995101785469501244\"></span><br> </font></td>"; MatchCollection mc = reg.Matches(input); string href = ""; string text = ""; string date = ""; StringBuilder result = new StringBuilder(); foreach (Match m in mc) { href = m.Groups["href"].Value; text = m.Groups["atext"].Value; date = m.Groups["date"].Value; result.Append(href + "," + text + "," + date+";\r"); }
@HJN:
const string pp = "(?i)(?s)<td class=.*?>.*?<a.*?href=\"(?<href>.*?)\".*?>(?<atext>.*?)</a>.*?</h3>.*?<font.*?>.*?<span.*?>.*?\\s(?<date>\\d{4}-\\d{1,2}-\\d{1,2})\\s+</span>";
搞定了, 大侠有啥补充的没?
http://htmlagilitypack.codeplex.com/wikipage?title=Examples
<em>www</em>-<em>8kmm</em>-<em>com</em>
这部分你要怎么处理?
1、a标签链接内容用这个正则
<a\s.*?\shref="(.*?)" target="_blank">(.*?)</a>
string ss = "<h3 class=\"t\"><a.*?href=\"(?<url>.*?)\".*?>(?<content>.*?)</a>"
,
取a标签的url和文本已经好了,这一个就能搞定。 关键是我要取下面的日期……。 “2012-7-20”
“2012-7-25” 在固定的位置的。。
@问天何必: 日期用这个正则
<span class="g">.*?\s(\d{4}-\d{1,2}-\d{1,2})\s+</span>
@artwl:
int i = 1;
List<KeyWord> keywords = new List<KeyWord>();
string ss = "<h3 class=\"t\"><a.*?href=\"(?<url>.*?)\".*?>(?<content>.*?)</a>";
MatchCollection mcTable = Regex.Matches(html, ss);
foreach (Match mTable in mcTable)
{
if (mTable.Success)
{
KeyWord keyword = new KeyWord();
keyword.ID = i++;
keyword.Title = Regex.Replace(mTable.Groups["content"].Value, "<[^>]*>", string.Empty);
keyword.Link = mTable.Groups["url"].Value;
// MatchCollection mckz = Regex.Matches(html, "<span class=\"g\">(?<content>.*?)</span>");
// keyword.kz = mckz.Groups[""].Value;
keywords.Add(keyword);
}
}
这是我的代码, 我是想先取所以<td>里面的内容, 然后再匹配。 得到a标签url、文本, 日期。