[英]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.