2011-11-09 5 views
1

私はにpreg_replaceタグの問題

</th> 
</tr> 
</thead> 

で二つのタグ

</th> 
</tr> 

を交換しようとしている私は、タグの間に改行が作業から以下の交換を妨げていると思う:

$str = preg_replace('/(<\/th>)+(\/tr)/i', '</th></tr></thead>', $str); 

お願いします。 \s*は空白に一致し、あなたが/tr周り<>を欠落していたことを

$str = preg_replace('/<\/th>\s*<\/tr>/i', '</th></tr></thead>', $str); 

注:

+0

私は、これを行うために正規表現を使用せず、代わりにHTMLパーサを使用することをお勧めします。さらに、あなたの正規表現をチェックしてください、それはあなたがそこに1つまたは他の文字を見逃したように見えます。 – hakre

+1

'/ i'の代わりに'/s'を使う.. – Rikesh

+0

時にはHTMLパーサーは良い選択だが、それがちょっとしたことなら、多分それは良い考えではない。 –

答えて

1

これは正規表現のソリューションです。

上記のように、HTML/DOMパーサーは、あなたがしたいことに適しています。