2014-05-03 118 views
-3

什麼需要模板RegEx來獲取域名。獲取域名正則表達式

例如,我有:

lifenews.ru 
www.forbes.com 
goo.gl 
ya.ru 

,並得到:

lifenews 
forbes 
goo 
ya 
+0

你喜歡http://www.bbc.co.uk或http://www.nsw.gov.au/嗎? – ClickRick

回答

0
preg_match('/(?:www\.)?(\w+)\./', $url, $matches); 
$host = $matches[1]; 

這工作,並儘可能我可以說,它佔了一個人www 或不。

+0

這假設感興趣的域名部分將成爲第一個或將遵循'www.'。 – ClickRick

0

的Javascript W/O型的正則表達式:

var parts = "www.forbes.com".split('.'); 
parts.pop();//first level domain 
var domain = parts.pop(); //second level domain 
1

如何:

^(?:.*(?=\..*\..*).)?([^.]+) 

Demo on regex101

第一部分((?:.*(?=\..*\..*).)?)將消耗之前的所有內容(帶有兩個點的單詞序列,如abc.comwww.stuff.abc.com)。下一部分(([^.]+))匹配abc

+1

對於使用多個級別的國家/地區,如[BBC](http://www.bbc.co.uk)或[新南威爾士州](http://www.nsw.gov.au/) ) – ClickRick

+0

@ClickRick你是對的。我沒有想到這些情況 - 錯誤地認爲這是問題的意圖。一個預測這些案例的正則表達式,雖然沒有列舉它們(作爲被接受的答案,或者被標記爲重複問題的答案)是不可能的。乾杯! – acdcjunior