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