-1

我想删除两个 html 标签之间的部分字符串。我有这样的事情:

$variable = "This is something that I don't want to delete<blockquote>This is I want to delete </blockquote>";

问题是blockquote标签之间的字符串正在改变,无论它是什么都需要删除。有人现在怎么样?

4

3 回答 3

2

正则表达式不是解析 html 字符串的最佳选择,您应该看看Simple HTML dom parser或 php DOMDocument 类

如果您仍然想在这种情况下使用正则表达式,例如:

$variable = preg_replace('/<blockquote>.+<\/blockquote>/siU', '', $variable);

在那里测试它。

于 2013-09-11T07:54:21.427 回答
1

您可以使用正则表达式,但这绝不是故障安全的,只能在不重要的情况下使用。更好的方法是使用成熟的 HTML 解析器。

<?php
$str = preg_replace('#<blockquote>.*</blockquote>#siU', '', $str);
?>
于 2013-09-11T07:51:25.843 回答
0

请尝试以这种方式使用正则表达式

<?php
$variable = "This is something that I don't want to delete<blockquote>This is I want to delete </blockquote>";
$str = preg_replace('#(<blockquote>).*?(</blockquote>)#', '$1$2', $variable);
print($str);
?>
于 2013-09-11T07:54:21.850 回答