簡體   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