我有1000个HTML文档,我在其中
$contenido="<p>TFJFA<div>whatsapp</div></p><p>second parragraph</p><p>third parragraph </p><p>night</p>";
我需要删除第一个</p>
标记;结果必须是:
$contenido="<p>second parragraph</p><p>third parragraph </p><p>night</p>";
我试过使用这个正则表达式,但它不起作用。
$pattern = '/\<p\>.*?\</p\>(.*)/';
$contenido=preg_replace($pattern, '$1'. $contenido);
答案 0 :(得分:2)
您的模式中包含未转义的/
,并且您还使用/
作为正则表达式分隔符(即/regex/
)。您可以转义内部/
(在结束标记中)或使用不同的分隔符:
$pattern = '/<p>.*?<\/p>(.*)/';
OR(我更喜欢这个选项,更容易理解 - 我选择'@'作为分隔符):
$pattern = '@<p>.*?</p>(.*)@';
此外,您可以将模式设为$1
,替换为@<p>.*?</p>@
,并将{1}}作为''
参数输入,而不是将其替换为$limit
。 preg_replace
。