繁体   English   中英

在href PHP中选择链接

[英]Selecting link inside href PHP

如何从此HTML中选择http://test.com/
<a target="_new" href="http://test.com/" title="test">$293.00</a>

我意识到我应该使用DOM解析器,但是它用于几行代码,而我只想使用regex。

我尝试了这个没有成功:

preg_match('/(http|https)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/', $html, $url);   

谢谢。

您可以使用环顾四周解决此问题:

if (preg_match('/(?<=href=").*?(?=")/', $html, $groups)) {
    $url = $groups[0];
} else {
    $url = "";
}
  • (?<=href=")意思是:在href="之后立即找到职位
  • 然后匹配所有内容,但尽可能少用.*? -储存在groups[0]
  • 找到下一个字符为"

当我不使用DOM解析器时,这意味着我非常确定其内容,并且最终得到了一个非常简单的东西……像这样……

preg_match('/href="([^"]+)"/', $html, $regs);

网址将在$ regs [1]中。

如果只想使用href,您要做的就是preg_match('/href="([^"]*?)/', $html, $matches) ,然后获取$matches[1]

好吧,当然您的解析器与大量合法URL不匹配。 更有用的信息,请参见http://mathiasbynens.be/demo/url-regex

更具体地说,请注意,/ \\ S *匹配/“可能不是您想要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM