我想从我的字符串中删除<p>
标记,其中包含空格或空格或<br />
。我试过这个
$html = "abc<p> </p><p></p><p> </p><p><br /></p><p>dd</p><b>non-empty</b>";
$pattern = "/<p[^>]*>( |\s)<\\/p[^>]*>/";
//$pattern = "/<[^\/>]*>([\s]?)*<\/[^>]*>/"; use this pattern to remove any empty tag
echo preg_replace($pattern, '', $html);
这很好用。它只删除空格。提前谢谢。
答案 0 :(得分:0)
这样的事情:
$result = preg_replace('#<p[^>]*>(\s| ?)*</p>#', '', $html);
答案 1 :(得分:0)
你必须仔细建立你的正则表达式......这是一个解决方案:
<br />
匹配任意数量的空格或&nsbp;
的正则表达式: $special = "(?:<br\\s*/>| )";
$normal = "\\s";
normal* ( special normal* ) *
模式: $re = "<p\\s*>$normal*($special$normal*)*</p\\s*>";
echo preg_replace("$re", "", $html);