有这样一段源码:
<table width="95%" border="0" align="center" cellpadding="20" cellspacing="0">
<tr>
<td align="left" class="a14"><br>
<p>
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=#465571 cellPadding=2 cellSpacing=0 width=650><tr bgColor="#eeeeee">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr><td>品种 </td>
<td>规格 </td>
<td>等级 </td>
<td>产地 </td>
<td>价格 </td>
<td>
</td>
</tr>
</table>
</p>
</td>
</tr>
</table>
求一个正则表达式获取到 <td>里面的<table>
<table width="95%" border="0" align="center" cellpadding="20" cellspacing="0">
<tr>
<td align="left" class="a14"><br>
<p>
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=#465571 cellPadding=2 cellSpacing=0 width=650><tr bgColor="#eeeeee">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr><td>品种 </td>
<td>规格 </td>
<td>等级 </td>
<td>产地 </td>
<td>价格 </td>
<td>
</td>
</tr>
</table>
</p>
</td>
</tr>
</table>
求一个正则表达式获取到 <td>里面的<table>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr><td>品种 </td>
<td>规格 </td>
<td>等级 </td>
<td>产地 </td>
<td>价格 </td>
<td>
</td>
</tr>
</table>这么一段table 嵌在一个table中的。
MatchCollection mc = reg.Matches(yourStr);
foreach (Match m in mc)
{
richTextBox2.Text += m.Groups["t"].Value + "\n";
}
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=#465571 cellPadding=2 cellSpacing=0 width=650><tr bgColor="#eeeeee">
...................
....................
我要去掉table标签
<TABLE align=center border=1 borderColorDark=#ffffff borderColorLight=#465571 cellPadding=2 cellSpacing=0 width=650><tr bgColor="#eeeeee">
...................
....................
我要去掉table标签
提取时直接不带table标签就是了 Regex reg = new Regex(@"(?is)<td[^>]*>(?:(?!</?(td|table)).)*<table[^>]*>(?<t>.*?)</table>");
MatchCollection mc = reg.Matches(yourStr);
foreach (Match m in mc)
{
richTextBox2.Text += m.Groups["t"].Value + "\n";
}
替换掉页面的 <td> 所有类型的,包含属性也要替换掉。
str = Regex.Replace(str,"</td>","</name>",RegexOptions.IgnoreCase);
str = Regex.Replace(str,@"<td\b([^>]*)>([\s\S]*?)</td>","<name$1>$2</name>",RegexOptions.IgnoreCase);
这个是可以把td转换成name的,但是有点不足的地方就是 td中包含的有属性,我需要吧这些属性值去掉,现在的情况td转换成了name,属性值也仍然存在!求教。
<name colspan="7">行情</name>
<td> 替换成<name> ,</td> 替换成</name> ?Regex regTd = new Regex(@"(?i)<(/?)td[^>]*>");
string result = regTd.Replace(yourStr, "<$1name>");