使用正则表达式从 HTML 文档中的链接中提取 URL
我需要捕获给定 html 中的所有链接。
这是示例代码:
<div class="infobar">
... some code goes here ...
<a href="/link/some-text">link 1</a>
<a href="/link/another-text">link 2</a>
<a href="/link/blabla">link 3</a>
<a href="/link/whassup">link 4</a>
... some code goes here ...
</div>
我需要获取 div.infobar
内以 /link/
开头的所有链接
我尝试了这个:
preg_match_all('#<div class="infobar">.*?(href="/link/(.*?)") .*?</div>#is', $raw, $x);
但它给了我唯一的第一个匹配项。
感谢您的建议。
I need to capture all links in a given html.
Here is sample code:
<div class="infobar">
... some code goes here ...
<a href="/link/some-text">link 1</a>
<a href="/link/another-text">link 2</a>
<a href="/link/blabla">link 3</a>
<a href="/link/whassup">link 4</a>
... some code goes here ...
</div>
I need to get all links inside div.infobar
that starts with /link/
I tried this:
preg_match_all('#<div class="infobar">.*?(href="/link/(.*?)") .*?</div>#is', $raw, $x);
but it gives me the only first match.
Thanks for advices.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我建议为此目的使用 DOMDocument 而不是使用正则表达式。考虑以下简单代码:
OUTPUT
I would suggest using DOMDocument for this very purpose rather than using regex. Consider following simple code:
OUTPUT
修改我之前的答案。您需要分两步完成:
Revising my previous answer. You'll need to do it in two steps:
http://simplehtmldom.sourceforge.net/ :
http://simplehtmldom.sourceforge.net/ :
试试这个(我添加了一个
+
):Try this (I added a
+
):