求个正则表达式

ltcszk 2010-06-02 10:15:30
要求匹配除table标签以外所有html标签,而且还要加上table的标签内的其他字符
比如
<table id="tableFee" class="resulttable">

红字部分要匹配
...全文
202 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
ltcszk 2010-06-02
  • 打赏
  • 举报
回复
<span class="longhide60" style="width:54px; overflow:hidden;"
title='550772928'>
这句也滤不掉
ltcszk 2010-06-02
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 sprc_lcl 的回复:]

string str = "<table skdjflksdj colspan=2 dkf style=aaaaa><tr a><a a>asdfsdf dsfsd cdc</a></td>";
str = Regex.Replace(str, @"<(?!/?(table|tr|td|thead|tbody|th)).*?>", "");
s……
[/Quote]
为什么红色的没被滤掉<table skdjflksdj colspan=2 dkf style=aaaaa>
sprc_lcl 2010-06-02
  • 打赏
  • 举报
回复
string str = "<table skdjflksdj colspan=2 dkf style=aaaaa><tr a><a a>asdfsdf dsfsd cdc</a></td>";
str = Regex.Replace(str, @"<(?!/?(table|tr|td|thead|tbody|th)).*?>", "");
str = Regex.Replace(str, @"<(table|tr|td|thead|tbody|th)(?:.*?( rowspan=""2"")|.*?( style=""vnd.ms-excel.numberformat:@""))*.*?>", "<$1$2$3>");


//str = Regex.Replace(str, @"(?<=</?\w+) [^>]*", "");
Response.Write(str);

想保留 style="vnd.ms-excel.numberformat:@"和 rowspan="2" 这两句应该怎么改?
ltcszk 2010-06-02
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 wangkun9999 的回复:]

用我上面的代码不就行了?
引用 16 楼 ltcszk 的回复:
<td style="vnd.ms-excel.numberformat:@">
<span id="lblProductNames" title="苹果" class="longhide60" style="display:inline-block;width:50px;">苹果</span>
</td>
[/Quote]
这两句被过滤掉了啊,我的意思是这两句要和<table>等标签一起保留
wangkun9999 2010-06-02
  • 打赏
  • 举报
回复
用我上面的代码不就行了?
[Quote=引用 16 楼 ltcszk 的回复:]
<td style="vnd.ms-excel.numberformat:@">
<span id="lblProductNames" title="苹果" class="longhide60" style="display:inline-block;width:50px;">苹果</span>
</td>
[/Quote]
ltcszk 2010-06-02
  • 打赏
  • 举报
回复
<td style="vnd.ms-excel.numberformat:@">
<span id="lblProductNames" title="苹果" class="longhide60" style="display:inline-block;width:50px;">苹果</span>
</td>
wangkun9999 2010-06-02
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 ltcszk 的回复:]
还有一个问题,第一个里我想保留 style="vnd.ms-excel.numberformat:@"和 rowspan="2" 这两句应该怎么改?
[/Quote]
哪来的 style="vnd.ms-excel.numberformat:@"????,给个例子...
gll062 2010-06-02
  • 打赏
  • 举报
回复
xue xi..............
wangkun9999 2010-06-02
  • 打赏
  • 举报
回复
输出结果.....table相关的标签还有的话加在(table|tr|td|thead|th|tbody...)后面
id="tableFee" class="resulttable"<br>
onmouseover="mover(this,true)" onmouseout= "mout(this,true)"<br>
rowspan="2"<br>
<a herf='OrderDetail.aspx?Id=1273'><br>
</a><br>
ltcszk 2010-06-02
  • 打赏
  • 举报
回复
还有一个问题,第一个里我想保留 style="vnd.ms-excel.numberformat:@"和 rowspan="2" 这两句应该怎么改?
wangkun9999 2010-06-02
  • 打赏
  • 举报
回复
看错了,改进下,看下是不是LZ想要的?

string str = "<table id=\"tableFee\" class=\"resulttable\"><thead><tr><th>合同号</th></tr></thead><tbody>\r\n<tr onmouseover=\"mover(this,true)\" onmouseout= \"mout(this,true)\">\r\n<td rowspan=\"2\"><a herf='OrderDetail.aspx?Id=1273'>N100023 </a></td>\r\n</tr>\r\n</tbody>\r\n</table>";
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"(?is)(?<content>(</?(?!(table|tr|td|thead|th|tbody))\w+\s{0,}[^>]*?>)|((?<=<\w+\s){1,}[^>]*?)(?=>))", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.MatchCollection m = reg.Matches(str); //设定要查找的字符串
for (int i = 0; i < m.Count; i++)
{
Response.Write(m[i].Groups["content"].ToString()+"<br>");
}

sprc_lcl 2010-06-02
  • 打赏
  • 举报
回复

string str = "<table skdjflksdj dkf><tr a><a a>asdfsdf dsfsd cdc</a></td>";
str = Regex.Replace(str, @"(?<=</?\w+) [^>]*", "");
str = Regex.Replace(str, @"<(?!/?(table|tr|td|thead|tbody|th)).*?>", "");
Response.Write(str);
ltcszk 2010-06-02
  • 打赏
  • 举报
回复
第二个有问题</tr></td>这种标签也被过滤掉了
vip__888 2010-06-02
  • 打赏
  • 举报
回复
等待过客
sxldfang 2010-06-02
  • 打赏
  • 举报
回复
不清楚,不参与。
守护欢笑 2010-06-02
  • 打赏
  • 举报
回复
学习了,谢谢
wangkun9999 2010-06-02
  • 打赏
  • 举报
回复

string str = "<table id=\"tableFee\" class=\"resulttable\"><thead><tr><th>合同号</th></tr></thead><tbody>\r\n<tr onmouseover=\"mover(this,true)\" onmouseout= \"mout(this,true)\">\r\n<td rowspan=\"2\"><a herf='OrderDetail.aspx?Id=1273'>N100023 </a></td>\r\n</tr>\r\n</tbody>\r\n</table>";
System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"(?is)<\w+\s{1,}(?<content>[^<>]*)>", System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.MatchCollection m = reg.Matches(str); //设定要查找的字符串
for (int i = 0; i < m.Count; i++)
{
Response.Write(m[i].Groups["content"].ToString()+"<br>");
}
sprc_lcl 2010-06-02
  • 打赏
  • 举报
回复
要求有点难办,如果只是替换红色的话可以:

string str = "<table skdjflksdj dkf><tr a><a a>asdfsdf";
str = Regex.Replace(str, @"(?!<\w+) [^>]*", "");
str = Regex.Replace(str, @"<(?!(table|tr|td)).*?>", "");
Response.Write(str);
兔子-顾问 2010-06-02
  • 打赏
  • 举报
回复
还是看不出规则是什么。等客客师傅吧。
ltcszk 2010-06-02
  • 打赏
  • 举报
回复
<table id="tableFee" class="resulttable"><thead><tr><th>合同号</th></tr></thead><tbody>
<tr onmouseover="mover(this,true)" onmouseout= "mout(this,true)">
<td rowspan="2"><a herf='OrderDetail.aspx?Id=1273'>N100023 </a></td>
</tr>
</tbody>
</table>
红色都是匹配的内容
加载更多回复(5)

62,039

社区成员

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

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

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

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