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