正则表达式替换几个html属性

时间:2011-01-06 07:34:17

标签: html regex

我有这个HTML:

<table style="width: 128px;" border="0" cellspacing="0" cellpadding="0">
<colgroup span="1"><col span="2" width="64"></col></colgroup>
<tbody>
<tr height="20">
<td width="64" height="20">&nbsp;</td>
<td class="xl65" dir="rtl" width="64"><strong></strong></td>
</tr>
<tr height="20">
<td class="xl67" dir="rtl" width="64" height="20">&nbsp;</td>
<td class="xl66" dir="ltr" width="64">T3500&nbsp;</td>
</tr>
<tr height="20">
<td class="xl68" width="64" height="20">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr height="20">
<td height="20">&nbsp;</td>
<td class="xl65" dir="rtl" width="64"><strong></strong></td>
</tr>
<tr height="48">
<td class="xl67" dir="rtl" width="64" height="48">&nbsp;</td>
<td class="xl66" dir="ltr" width="64">Intel&reg; X58 Chipset&nbsp;</td>
</tr>
<tr height="33">
<td class="xl70" dir="rtl" width="64" height="33">&nbsp;</td>
<td class="xl69" dir="ltr" width="64">10/100/1000&nbsp;</td>
</tr>
<tr height="20">
<td class="xl68" width="64" height="20">&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr height="20">
<td height="20">&nbsp;</td>
<td class="xl65" dir="rtl" width="64"><strong></strong></td>
</tr>
<tr height="96">
<td class="xl67" dir="rtl" width="64" height="96">&nbsp;</td>
<td class="xl66" dir="ltr" width="64">One Intel Xeon W3503(2.4GHz,4.8GT/s,4MB,DC)&nbsp;</td>
</tr>
<tr height="20">
<td class="xl68" width="64" height="20">&nbsp;</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>

我想用任何东西替换所有样式,目录,高度,宽度和类别,以便将其删除

这是我为他们中的一些人尝试过的,它在一个在线测试器中工作但在notepad ++中不起作用

( class=\"([^\"]*)\"){0,} (width=\"([^\"]*)\"){0,} (height=\"([^\"]*)\"){0,}

2 个答案:

答案 0 :(得分:5)

尝试

\s*(?:style|dir|height|width|class)\s*=\s*"[^"]*"\s*

当然,这会删除style="hello"之类的文字,无论它们出现在哪里,也可以在标签之外删除。

可能是Notepad ++不支持\s简写。尝试使用

[ ]*(?:style|dir|height|width|class) *= *"[^"]*" *

而是看看是否有效。开头的[ ]可以替换为单个空格。

答案 1 :(得分:1)

这应该可以解决问题,至少对你的例子来说是这样的:

\ S *(式| DIR |高度|宽度|类别)= “[^”] +“\ S *