[英]How to use regex to match multiple paragraphs?
我想處理網頁中的 html 並提取符合我的條件的段落。 正則表達式的風格是 PHP。
這是示例網頁 HTML:
<div class="special">
<p>Some interesting text I would like to extract</p>
<p>More interesting text I would like to extract</p>
<p>Even more interesting text I would like to extract</p>
</div>
正則表達式在<div class="special">
和</div>
標記之間查找,並將所有內容放入捕獲組或變量中以供下一步參考。 下一步是我遇到的問題。 我一生都無法編寫一個正則表達式來捕獲<p>
和</p>
之間的每一段文本。
我試過/<p>(.+?)<\\/p>/s
返回:
<p>Some interesting text I would like to extract</p>
<p>More interesting text I would like to extract</p>
<p>Even more interesting text I would like to extract</p>
我希望每個段落都作為數組中的項目單獨返回。 非貪婪?
似乎不起作用。 有什么建議?
您必須為 p 標簽轉義斜杠。
所以這將是
/<p>(.+?)<\/p>/s
那么蠢! 正則表達式完美運行。 所有的正則表達式都能完美地工作。 問題在於輸入。 我正在處理的輸入 HTML 文件具有以下結構,這使得正則表達式不起作用。
<p>Some interesting text I would like to extract
<p>More interesting text I would like to extract
<p>Even more interesting text I would like to extract</p></p></p>
我使用 var_dump(htmlfile.html) 查看我得到的 HTML 頁面,但我的瀏覽器處理了它,所以我沒有得到原始數據。 我能夠通過使用以下方法獲取原始數據並找到我的錯誤:
include 'filename.php';
file_put_contents('filename.php', $data);
現在我知道不要相信我的瀏覽器會再次返回原始數據!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.