【问题标题】:The perfect preg_match_all to fetch href [duplicate]获取href的完美preg_match_all [重复]
【发布时间】:2011-10-19 02:47:45
【问题描述】:

可能重复:
Grabbing the href attribute of an A element

我浏览了很多其他帖子,发现它们都遵循一些固定的 Anchor 标签格式。他们中的大多数人假设锚标记格式为<a href="http://www.example.com/">Hello</a> .. 并且可能是target<a 之后的属性。但我正在尝试编写一个正则表达式来匹配锚标记的href,无论它可能出现在什么地方标签。它可以出现在 alt、title、target 之后,也可以出现在它们之间。还有另一种情况是锚标记使用单引号而不是双引号。
我已经尝试了半个小时,但没有得到任何结果。所以在这里发布。

【问题讨论】:

  • 如果你真的看过很多帖子,你会发现到处都是关于 DOM 解析器的答案。
  • @k102,Gordon,请查看其他答案的评论。
  • @Gordon 感谢您对另一个答案的评论。 :P

标签: php preg-match-all


【解决方案1】:

不要使用正则表达式解析 HTML,使用 DOMDocumentSimple HTML DOM Parser 之类的库。

【讨论】:

  • 已经这么想了。但有一个疑问。仅为此使用库,不会增加处理时间吗?我说的是每分钟解析数千个锚标签。所以只是想确定一下。
  • 还是说有这么多要处理,还是用库更好?
  • @Bibhas DOM 是一个原生扩展。并且您不应该担心性能而不进行分析并发现它具有显着的负面影响。另见stackoverflow.com/questions/3577641/best-methods-to-parse-html/…
  • 附注:尽管我支持使用 DOM 的建议(不是 SimpleHtmlDom;它很烂),但我认为这个答案应该是一个评论。最近,为永无止境的“用 dom 问题解析正则表达式”提供这个答案已成为一种趋势。但是答案是如此笼统,以至于它不应该为任何提供它的人赢得任何声誉。特别是因为这个问题也是重复的。
  • SOF 也需要一些方法来突出最有用的 cmets。大多数时候,答案在于 cmets。
猜你喜欢
  • 2011-06-03
  • 1970-01-01
  • 2011-09-28
  • 2021-02-08
  • 2010-12-03
  • 1970-01-01
  • 2017-09-14
  • 1970-01-01
相关资源
最近更新 更多