您應該使用DOMDocument
而不是Regex
。
(可選)您可以使用LIBXML_HTML_NODEFDTD
和LIBXML_HTML_NOIMPLIED
來避免html
標籤。
Try this code snippet here
<?php
ini_set('display_errors', 1);
$html = "<p>Lorem ipsum lorem ipsum lorem ipsum</p>
<p>Lorem ipsum lorem ipsum lorem ipsum</p>
<p>Read : SOME ARTICLE</p>
<p>Lorem ipsum lorem ipsum lorem ipsum";
$domDocument = new DOMDocument();
$domDocument->loadHTML($html,LIBXML_HTML_NODEFDTD|LIBXML_HTML_NOIMPLIED);
$domXPath = new DOMXPath($domDocument);
$results = $domXPath->query("//p[contains(.,'Read :')]");//querying p node which contains `Read: `
$nodeToremove=$results->item(0);
$nodeToremove->parentNode->removeChild($nodeToremove);//Removing node
echo $domDocument->saveHTML();
您已經嘗試了什麼?看看DOMDocument而不是Regex。 「 –
」如何從
開始閱讀:****
已不存在。「我認爲這是你問的實際問題。但我真的不明白。你能改說嗎?提供更多的樣本輸入和期望的輸出?也許一路走到一個[mcve]。 – Yunnosch我同意一些文件,但你堅持使用正則表達式:https://regex101.com/r/0VB1hi/1 – Andreas