如何使用RegEx替换php字符串中的所有html标记

时间:2012-02-27 08:36:01

标签: php regex

如何使用RegEx替换php字符串中的所有html标签

尝试如下但失败,

$r = "<h1>Hai</h1><br/><p>Hello world</p>";


$result = preg_replace('<(.*)>', '', $r);



echo $result ;

预期结果:

Hai Hello world就像字符串格式一样

3 个答案:

答案 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指出的那样,使用条带标签功能可能是解决此问题的最佳方法。