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