0

次のPHP正規表現は、すべての空のタグを削除します。

#<[^\/>]*>([\s]?)*<\/[^>]*>#u

一致しない空のタグを削除したい:

<div style="clear:both"></div>

私は試した:

#^(<div style="clear:both"></div>)<[^\/>]*>([\s]?)*<\/[^>]*>#u

...しかし、それは機能しませんでした。

否定を追加するにはどうすればよいですか?

4

1 に答える 1

3

それが整形式あり、欠落している終了タグがないことを前提とすると、これでうまくいくはずです。

<(?!div\s+style=(?:"[^"]*?\bclear:\s*both\b[^"]*"|'[^']*?\bclear:\s*both\b[^']*')\s*>\s*</div>).*?>\s*</.*?>

大文字と小文字を区別しないフラグも必ず使用してください。しかし、私はまだそれに対して忠告します。

編集:私は自分の編集をテストしていませんが、もう少し徹底的であるとかなり確信しています。

于 2013-01-13T03:04:13.123 に答える