如何使用RegEx 替换php字符串中的所有html标记
尝试如下但失败,
$r = "<h1>Hai</h1><br/><p>Hello world</p>";
$result = preg_replace('<(.*)>', '', $r);
echo $result ;
预期结果:
Hai Hello world
仅为字符串格式
在.*
后打一个问号
$r = "<h1>Hai</h1><br/><p>Hello world</p>";
$result = preg_replace('<(.*?)>', '', $r);
echo $result ;
.*
是一个贪婪的正则表达式,将匹配所有,直到最后一个>
字符。.*?
是惰性的,并且将匹配到第一个>
字符。
使用strip_tag而不是regex怎么样?http://php.net/manual/en/function.strip-tags.php
您的正则表达式失败,因为*
是一个贪婪运算符,它会消耗包括>
字符在内的所有字符。尝试以下操作:
$result = preg_replace('<(.*?)>', '', $r);
然而,正如@MateuszMrozewski所指出的,使用条形标记函数可能是解决这个问题的最佳方法。