如何使用RegEx替换php字符串中的所有html标签
尝试如下但失败,
$r = "<h1>Hai</h1><br/><p>Hello world</p>";
$result = preg_replace('<(.*)>', '', $r);
echo $result ;
预期结果:
Hai Hello world
就像字符串格式一样
答案 0 :(得分:2)
如何使用strip_tags而不是正则表达式? http://php.net/manual/en/function.strip-tags.php
答案 1 :(得分:1)
在.*
$r = "<h1>Hai</h1><br/><p>Hello world</p>";
$result = preg_replace('<(.*?)>', '', $r);
echo $result ;
.*
是一个贪婪的正则表达式,将匹配所有最后 >
字符。 .*?
是懒惰的,会匹配第一个 >
字符。
答案 2 :(得分:0)
您的正则表达式失败,因为*
是一个贪婪的运算符 - 它会消耗所有字符,包括>
字符。请尝试以下方法:
$result = preg_replace('<(.*?)>', '', $r);
然而,正如@MateuszMrozewski指出的那样,使用条带标签功能可能是解决此问题的最佳方法。