正则匹配网页源码的闭合标签,该怎么处理
正则匹配网页源码的闭合标签
有一段网页信息:
现在我已经匹配到了其中的:
现在我想匹配出最外层的闭合标签<TR></TR>,默认不知道上一级的标签名称是什么。
我采用的方法是
这样匹配出来的,是一个错误的,被前面<TD height=284 vAlign=top width=19 align=center> </TD>给优先取到了。
------解决方案--------------------
http://blog.csdn.net/webgeek/article/details/8621058
有一段网页信息:
<TR>
<TD height=284 vAlign=top width=19 align=center> </TD>
<TD vAlign=top width=222 align=center>
<TABLE border=0 cellSpacing=0 cellPadding=0 width=222>
<TBODY>
<TR>
<TD style="PADDING-BOTTOM: 8px; PADDING-LEFT: 8px; PADDING-RIGHT: 8px; PADDING-TOP: 8px" bgColor=#ffffff height=206 vAlign=middle align=center>
<A style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-TOP: medium none; BORDER-RIGHT: medium none" href="http://item.taobao.com/item.htm?id=16648267291" target=_blank>
<IMG border=none src="http://img03.taobaocdn.com/bao/uploaded/i3/18405019272778611/T1KTwWXglXXXXXXXXX_!!0-item_pic.jpg_360x360.jpg" width=206>
</A>
</TD>
</TR>
</TABLE>
</TD>
</TR>
现在我已经匹配到了其中的:
<TD vAlign=top width=222 align=center>
<TABLE border=0 cellSpacing=0 cellPadding=0 width=222>
<TBODY>
<TR>
<TD style="PADDING-BOTTOM: 8px; PADDING-LEFT: 8px; PADDING-RIGHT: 8px; PADDING-TOP: 8px" bgColor=#ffffff height=206 vAlign=middle align=center>
<A style="BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-TOP: medium none; BORDER-RIGHT: medium none" href="http://item.taobao.com/item.htm?id=16648267291" target=_blank>
<IMG border=none src="http://img03.taobaocdn.com/bao/uploaded/i3/18405019272778611/T1KTwWXglXXXXXXXXX_!!0-item_pic.jpg_360x360.jpg" width=206>
</A>
</TD>
</TR>
</TABLE>
</TD>
现在我想匹配出最外层的闭合标签<TR></TR>,默认不知道上一级的标签名称是什么。
我采用的方法是
private string GetParentTag(string str, string content)
{
str = str.Replace(".", @"\.").Replace("*", @"\*").Replace("?", @"\?");
string pattern = "(?is)<[^/<>]*?>[^<>]*?" + str + "[^<>]*?<[^<>]*?>";
Regex reg = new Regex(pattern);
Match mc = reg.Match(content);
if (mc != null && mc.Success)
{
return mc.Value;
}
else
{
return string.Empty;
}
}
这样匹配出来的,是一个错误的,被前面<TD height=284 vAlign=top width=19 align=center> </TD>给优先取到了。
正则表达式
------解决方案--------------------
http://blog.csdn.net/webgeek/article/details/8621058