Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除HTML标记的PHP正则表达式_Php_Regex - Fatal编程技术网

删除HTML标记的PHP正则表达式

删除HTML标记的PHP正则表达式,php,regex,Php,Regex,我正在寻找一种在PHP中搜索字符串并删除“的方法,我会使用下面(或上面)的@hwnd解析示例,这比使用正则表达式安全得多 您可以使用以下内容: /<(.*?)(\h*).*?>(.*?)<\/\1>/ /(*)/ 演示: PHP演示: echo preg_替换('/(.*?)/s',''Hello,我是一个小文本。这应该被删除。这又好了'); 输出: 你好,我是一个小文本。这是罚款再次 编辑:添加了s修改器,以防内容超过一行,演示失败 还请注意,这不是特定于pre的

我正在寻找一种在PHP中搜索字符串并删除
“的方法,我会使用下面(或上面)的@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);
}