【问题标题】:Finding a href value with Regex使用正则表达式查找 href 值
【发布时间】:2014-01-25 10:40:25
【问题描述】:

我有一个包含以下代码的文档

<link rel="next" type="application/atom+xml" href="https://xxxxxxxx.com?page=2"/>

是否有一些正则表达式会查找 rel 为 'next' 的链接标签并为我提供 href 值?这远远超出了我的正则表达式技能。

提前致谢

【问题讨论】:

  • 不建议使用正则表达式解析 HTML。仅当link 标记将以特定方式格式化时,您才可以尝试正则表达式。否则,您会看到许多不同的情况通过正则表达式下降。

标签: regex search find


【解决方案1】:

这种类型的解析不应该真正从正则表达式中完成,因为 HTML 的意外性质可能随时破坏正则表达式。

考虑这个工作的基于 DOM 的代码:

$dom = new DOMDocument; 
$dom->loadXML(
  '<link rel="next" type="application/atom+xml" href="https://xxxxxxxx.com?page=2"/>'); 
$xpath = new DOMXPath($dom); 
$nodelist = $xpath->query("//link[contains(@rel, 'next')]");
for($i=0; $i < $nodelist->length; $i++) {
    $node = $nodelist->item($i);
    echo $node->getAttribute('href') . "\n";
}

输出:

https://xxxxxxxx.com?page=2

【讨论】:

    【解决方案2】:

    试试这个

    href=[\'"]?([^\'" >]+)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多