今天遇到一个项目,需要用到第三方的表格数据,弄下来后,发现太复杂了,各种标签,但在自己的项目中,这些标签却用不到,所有就需要写程序来去除标签
原理非常简单,就是用正则匹配,然后删除标签即可.
比如: 去除<table class="nameValue table table-sm table-stacked-mobile" aria-label="表 1"> 无用的,转为<table>
只需要使用正则替换
strdata = Regex.Replace(strdata, @"<table.*?>", "<table>", RegexOptions.IgnoreCase | RegexOptions.Singleline);
td也是同样的原理:
strdata = Regex.Replace(strdata, @"<td.*?>", "<td>", RegexOptions.IgnoreCase | RegexOptions.Singleline);
下面是转换前后的效果:
<table class="nameValue table table-sm table-stacked-mobile" aria-label="表 1">
<tbody><tr>
<td class="is-one-third-width-tablet">
<span class="break-text">
<a class="xref" href="https://learn.microsoft.com/zh-cn/dotnet/api/system.drawing.imageanimator.animate?view=dotnet-plat-ext-7.0#system-drawing-imageanimator-animate(system-drawing-image-system-eventhandler)" data-linktype="relative-path">Animate(Image, Event<wbr>Handler)</a>
</span>
</td>
<td class="summary">
<p>将多帧图像显示为动画。</p>
</td>
</tr>
<tr>
<td class="is-one-third-width-tablet">
<span class="break-text">
<a class="xref" href="https://learn.microsoft.com/zh-cn/dotnet/api/system.drawing.imageanimator.cananimate?view=dotnet-plat-ext-7.0#system-drawing-imageanimator-cananimate(system-drawing-image)" data-linktype="relative-path">Can<wbr>Animate(Image)</a>
</span>
</td>
<td class="summary">
<p>返回一个布尔值,该值指示指定图像是否包含基于时间的帧。</p>
</td>
</tr>
<tr>
<td class="is-one-third-width-tablet">
<span class="break-text">
<a class="xref" href="https://learn.microsoft.com/zh-cn/dotnet/api/system.object.equals?view=dotnet-plat-ext-7.0#system-object-equals(system-object)" data-linktype="relative-path">Equals(Object)</a>
</span>
</td>
<td class="summary">
<p>确定指定对象是否等于当前对象。</p>
(继承自 <a class="xref" href="https://learn.microsoft.com/zh-cn/dotnet/api/system.object?view=dotnet-plat-ext-7.0" data-linktype="relative-path">Object</a>)
</td>
</tr>
<tr>
<td class="is-one-third-width-tablet">
<span class="break-text">
<a class="xref" href="https://learn.microsoft.com/zh-cn/dotnet/api/system.object.gethashcode?view=dotnet-plat-ext-7.0#system-object-gethashcode" data-linktype="relative-path">Get<wbr>Hash<wbr>Code()</a>
</span>
</td>
<td class="summary">
<p>作为默认哈希函数。</p>
(继承自 <a class="xref" href="https://learn.microsoft.com/zh-cn/dotnet/api/system.object?view=dotnet-plat-ext-7.0" data-linktype="relative-path">Object</a>)
</td>
</tr>
<tr>
<td class="is-one-third-width-tablet">
<span class="break-text">
<a class="xref" href="https://learn.microsoft.com/zh-cn/dotnet/api/system.object.gettype?view=dotnet-plat-ext-7.0#system-object-gettype" data-linktype="relative-path">Get<wbr>Type()</a>
</span>
</td>
<td class="summary">
<p>获取当前实例的 <a class="no-loc" href="https://learn.microsoft.com/zh-cn/dotnet/api/system.type?view=dotnet-plat-ext-7.0" data-linktype="relative-path">Type</a>。</p>
(继承自 <a class="xref" href="https://learn.microsoft.com/zh-cn/dotnet/api/system.object?view=dotnet-plat-ext-7.0" data-linktype="relative-path">Object</a>)
</td>
</tr>
<tr>
<td class="is-one-third-width-tablet">
<span class="break-text">
<a class="xref" href="https://learn.microsoft.com/zh-cn/dotnet/api/system.object.memberwiseclone?view=dotnet-plat-ext-7.0#system-object-memberwiseclone" data-linktype="relative-path">Memberwise<wbr>Clone()</a>
</span>
</td>
<td class="summary">
<p>创建当前 <a class="no-loc" href="https://learn.microsoft.com/zh-cn/dotnet/api/system.object?view=dotnet-plat-ext-7.0" data-linktype="relative-path">Object</a> 的浅表副本。</p>
(继承自 <a class="xref" href="https://learn.microsoft.com/zh-cn/dotnet/api/system.object?view=dotnet-plat-ext-7.0" data-linktype="relative-path">Object</a>)
</td>
</tr>
<tr>
<td class="is-one-third-width-tablet">
<span class="break-text">
<a class="xref" href="https://learn.microsoft.com/zh-cn/dotnet/api/system.drawing.imageanimator.stopanimate?view=dotnet-plat-ext-7.0#system-drawing-imageanimator-stopanimate(system-drawing-image-system-eventhandler)" data-linktype="relative-path">Stop<wbr>Animate(Image, Event<wbr>Handler)</a>
</span>
</td>
<td class="summary">
<p>终止正在运行的动画。</p>
</td>
</tr>
<tr>
<td class="is-one-third-width-tablet">
<span class="break-text">
<a class="xref" href="https://learn.microsoft.com/zh-cn/dotnet/api/system.object.tostring?view=dotnet-plat-ext-7.0#system-object-tostring" data-linktype="relative-path">To<wbr>String()</a>
</span>
</td>
<td class="summary">
<p>返回表示当前对象的字符串。</p>
(继承自 <a class="xref" href="https://learn.microsoft.com/zh-cn/dotnet/api/system.object?view=dotnet-plat-ext-7.0" data-linktype="relative-path">Object</a>)
</td>
</tr>
<tr>
<td class="is-one-third-width-tablet">
<span class="break-text">
<a class="xref" href="https://learn.microsoft.com/zh-cn/dotnet/api/system.drawing.imageanimator.updateframes?view=dotnet-plat-ext-7.0#system-drawing-imageanimator-updateframes" data-linktype="relative-path">Update<wbr>Frames()</a>
</span>
</td>
<td class="summary">
<p>使该帧在当前正被动画处理的所有图像中前移。 新帧在下一次呈现图像时绘制。</p>
</td>
</tr>
<tr>
<td class="is-one-third-width-tablet">
<span class="break-text">
<a class="xref" href="https://learn.microsoft.com/zh-cn/dotnet/api/system.drawing.imageanimator.updateframes?view=dotnet-plat-ext-7.0#system-drawing-imageanimator-updateframes(system-drawing-image)" data-linktype="relative-path">Update<wbr>Frames(Image)</a>
</span>
</td>
<td class="summary">
<p>使帧在指定的图像中前移。 新帧在下一次呈现图像时绘制。 此方法只适用于包含基于时间的帧的图像。</p>
</td>
</tr>
</tbody></table>
转换后:
<table>
<tbody><tr>
<td>
Animate(Image, EventHandler)
</td>
<td>
将多帧图像显示为动画。
</td>
</tr>
<tr>
<td>
CanAnimate(Image)
</td>
<td>
返回一个布尔值,该值指示指定图像是否包含基于时间的帧。
</td>
</tr>
<tr>
<td>
Equals(Object)
</td>
<td>
确定指定对象是否等于当前对象。
(继承自 Object)
</td>
</tr>
<tr>
<td>
GetHashCode()
</td>
<td>
作为默认哈希函数。
(继承自 Object)
</td>
</tr>
<tr>
<td>
GetType()
</td>
<td>
获取当前实例的 Type。
(继承自 Object)
</td>
</tr>
<tr>
<td>
MemberwiseClone()
</td>
<td>
创建当前 Object 的浅表副本。
(继承自 Object)
</td>
</tr>
<tr>
<td>
StopAnimate(Image, EventHandler)
</td>
<td>
终止正在运行的动画。
</td>
</tr>
<tr>
<td>
ToString()
</td>
<td>
返回表示当前对象的字符串。
(继承自 Object)
</td>
</tr>
<tr>
<td>
UpdateFrames()
</td>
<td>
使该帧在当前正被动画处理的所有图像中前移。 新帧在下一次呈现图像时绘制。
</td>
</tr>
<tr>
<td>
UpdateFrames(Image)
</td>
<td>
使帧在指定的图像中前移。 新帧在下一次呈现图像时绘制。 此方法只适用于包含基于时间的帧的图像。
</td>
</tr>
</tbody></table>