删除HTML标记的PHP正则表达式
我正在寻找一种在PHP中搜索字符串并删除删除HTML标记的PHP正则表达式,php,regex,Php,Regex,我正在寻找一种在PHP中搜索字符串并删除“的方法,我会使用下面(或上面)的@hwnd解析示例,这比使用正则表达式安全得多 您可以使用以下内容: /<(.*?)(\h*).*?>(.*?)<\/\1>/ /(*)/ 演示: PHP演示: echo preg_替换('/(.*?)/s',''Hello,我是一个小文本。这应该被删除。这又好了'); 输出: 你好,我是一个小文本。这是罚款再次 编辑:添加了s修改器,以防内容超过一行,演示失败 还请注意,这不是特定于pre的
“的方法,我会使用下面(或上面)的@hwnd解析示例,这比使用正则表达式安全得多
您可以使用以下内容:
/<(.*?)(\h*).*?>(.*?)<\/\1>/
/(*)/
演示:
PHP演示:
echo preg_替换('/(.*?)/s',''Hello,我是一个小文本。这应该被删除。这又好了');
输出:
你好,我是一个小文本。这是罚款再次
编辑:添加了s
修改器,以防内容超过一行,演示失败
还请注意,这不是特定于pre
的,它将替换它遇到的任何元素。我将使用下面(或上面)的@hwnd解析示例,这比使用regex安全得多
您可以使用以下内容:
/<(.*?)(\h*).*?>(.*?)<\/\1>/
/(*)/
演示:
PHP演示:
echo preg_替换('/(.*?)/s',''Hello,我是一个小文本。这应该被删除。这又好了');
输出:
你好,我是一个小文本。这是罚款再次
编辑:添加了s
修改器,以防内容超过一行,演示失败
另外请注意,这并不是特定于pre
的,它将替换它遇到的所有元素。如果它只是一个小字符串,我不建议使用它,但这里可以使用正则表达式
$newString = preg_replace('~<pre[^>]*>[^<]*</pre>~', '', $str);
如果它只是一个小字符串,我不推荐它,但是正则表达式在这里就可以了
$newString = preg_replace('~<pre[^>]*>[^<]*</pre>~', '', $str);
非常感谢您的回复!非常感谢您的回复!
$doc = new DOMDocument;
$doc->loadHTML($html);
foreach ($doc->getElementsByTagName('pre') as $tag) {
$tag->parentNode->removeChild($tag);
}