2011-09-10 65 views
2

我有網址類似如下:如何獲取URL的基礎(最後部分)?

www.abc.def.xxx 
www.abc.xxx 
www.abc.def.ghi.yy 

我需要找到讓基地「XXX」或「YY」,當URL是不同的某種方式。誰能想到一個辦法,我可以用C#這樣做

+1

你是說頂級域名? –

+0

對於'www.apple.com.au',你想要'.au'還是'.com.au'? –

回答

4

你可以在.把它分解:

string url = "www.abc.def.ghi.yy"; 
string lastPart = url.Split(new char[] {'.'}).Last() 

或者使用正則表達式:

Regex exp = new Regex(@".*\."); 
string lastPart = exp.Replace("a.a.a.a.xxx", ""); 

或者只是愚蠢:

string lastPart = new string("www.abc.def.ghi.yy".ToCharArray().Reverse().TakeWhile(i => i != '.').Reverse().ToArray()); 
+0

嘗試了第一個,並有一些錯誤消息:錯誤無法找到類型或名稱空間名稱'Char'(您是否缺少using指令或程序集引用?) – Rubin

+0

我添加了「using System:然後獲取另一個錯誤:錯誤信息:錯誤'System.Array'沒有包含'Last'的定義,也沒有找到擴展方法'Last'接受'System.Array'類型的第一個參數(你是否缺少一個using指令或程序集引用?) – Rubin

+0

對不起,請不要在Char中大寫C,所以'char',您將需要'使用System.Linq;'爲'.Last()' – Joe

3

你可能最好使用正則表達式來做這件事,但一個簡單的方法就是像這樣是:

String str = "www.abc.def.xxx"; 
int lastPosition = str.LastIndexOf("."); 
String baseURL = str.Substring(lastPosition + 1, str.Length - lastPosition - 1); 
+0

這使我一個數組超出界限的異常我不確定但是Substring的第二個參數不應該是你想要選擇的字符的長度CT? – Rubin

+0

對不起。我搞砸了索引。我會解決它。 –