我想删除两个 html 标签之间的部分字符串。我有这样的事情:
$variable = "This is something that I don't want to delete<blockquote>This is I want to delete </blockquote>";
问题是blockquote标签之间的字符串正在改变,无论它是什么都需要删除。有人现在怎么样?
正则表达式不是解析 html 字符串的最佳选择,您应该看看Simple HTML dom parser或 php DOMDocument 类。
如果您仍然想在这种情况下使用正则表达式,例如:
$variable = preg_replace('/<blockquote>.+<\/blockquote>/siU', '', $variable);
您可以使用正则表达式,但这绝不是故障安全的,只能在不重要的情况下使用。更好的方法是使用成熟的 HTML 解析器。
<?php
$str = preg_replace('#<blockquote>.*</blockquote>#siU', '', $str);
?>
请尝试以这种方式使用正则表达式
<?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);
?>