正則擷取各類URL的頂層網域代碼是不是可行

來源:互聯網
上載者:User
正則擷取各類URL的頂層網域代碼是否可行?
本帖最後由 changjay 於 2010-09-07 23:25:30 編輯

有許多網址, 類似abc.abc.com ,abc.com/abc ,www.abc.com.cn , abc.com.tw ,www.abc.co.uk ,www.abc.com.jp/abc.php/id=abc(id=abc後面還可以跟很長)
還有很多種情況,我希望可以是萬能的。

如何用PHP正則擷取所有網址的頂層網域?獲得結果為 abc.com,abc.com.cn, abc.co.uk?

情況比較複雜。我用下面的代碼,大致可以判斷,但是當網域名稱裡有com,net,org,gov,cc,biz,info,cn,co時,正則出的結果就有問題了。
比如www.cool.com,被正則成了www.co。
希望正則高手幫我修改一下,變成一個萬能的頂層網域正則代碼。


$url = $row["url"];
preg_match("#[\w-]+\.(com|net|org|gov|cc|biz|info|cn|co)(\.(cn|hk|uk))*#", $url, $match);
echo $match[0];



------解決方案--------------------
$s = <<< TEXT
abc.abc.com
abc.com/abc
www.abc.com.cn
abc.com.tw
www.abc.co.uk
www.abc.com.jp/abc.php/id=abc
www.cool.com
TEXT;

foreach(split("[\r\n]+", $s) as $url) {
preg_match("#[\w-]+\.(com
------解決方案--------------------
net
------解決方案--------------------
org
------解決方案--------------------
gov
------解決方案--------------------
cc
------解決方案--------------------
biz
------解決方案--------------------
info
------解決方案--------------------
cn
------解決方案--------------------
co)\b(\.(cn
------解決方案--------------------
hk
------解決方案--------------------
uk
------解決方案--------------------
jp
------解決方案--------------------
tw))*#", $url, $match);
echo "

$url
" . $match[0];
}


abc.abc.com
abc.com

abc.com/abc
abc.com

www.abc.com.cn
abc.com.cn

abc.com.tw
abc.com.tw

www.abc.co.uk
abc.co.uk

www.abc.com.jp/abc.php/id=abc
abc.com.jp

www.cool.com
cool.com
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.