2011-01-06 16 views
2

属性:正規表現は、私はこの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> 

を私はそれが

これは何ですが削除されますので、何もすべてのスタイル、DIR、高さ、幅、およびクラスを交換したいです私はそれらのいくつかのために試してみましたが、それがオンラインテスターで働いていたが、試してみてくださいメモ帳++

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

答えて

5

では動作しませんでした

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

もちろん、style="hello"のようなテキストは、タグの外側でも削除されます。

メモ帳++は\sの略語をサポートしていない可能性があります。代わりに

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

を試してみてください。開始時の[ ]は、単一のスペースで置き換えることができます。

+0

がそれを変更\ s *(?:style | dir | height | width | class)\ s * = \ s * "[^"] * "これはオンラインテスターでは動作しますが、メモ帳では機能しません++ –

+0

あなたは*ほぼ解決済みです私の問題!残念ながら、HTMLがのとき、あなたのソリューションは壊れます。 を出力します。私のシナリオのためにそれを修正することができますか?私のregex kung fuは弱いです... – Andrew

+0

これは私の試みです。\ s *(?:\ s + style | dir | height | width | class)\ s * = \ s * "[^"] * "\ s * – Andrew

1

これは、少なくともあなたの例のために、トリックを行う必要があります。

\ sの*(スタイル|ディレクトリ|高|幅|クラス)= "[^"] + "\ sの*

関連する問題