可能重复: PHP Regular express to remove <h1> tags (and their content)
我有一些像这样的HTML:
<h2> Fund Management</h2> <p> The majority of property investments are now made via our Funds.</p>
尝试使用正则表达式来删除h2标记,但由于h2标记的开头和结尾之间存在空格,因此无法工作。
preg_replace('/<h2>(.+?)<\/h2>/', '', $content);
关于如何使这项工作成功有什么想法吗?
我也希望它能取代h1-h6标签,所以它可能需要[1-6]或其他什么?
你的正则表达式唯一的问题是缺少修饰符 si thingy)但是如果你想扩展它来匹配 <h1> 到 <h6> 标记,您可以通过使用第一个标记的后引用来完成此操作:
si
<h1>
<h6>
preg_replace("/<h([1-6]{1})>.*?<\/h\\1>/si", '', $content);
这样可以确保第一个标签与第二个标签匹配。
您可以在此处了解有关修改器的更多信息:
reference.pcre.pattern.modifiers.php