获得域å扩展的最优雅方å¼æ˜¯ä»€ä¹ˆï¼Ÿ

时间:2013-10-30 13:55:27

标签: vb.net

例如

google.com -> .com

google.co.id -> .co.id

hello.google.co.id -> .co.id

在vb.net中?

甚至å¯ä»¥è¿™æ ·åšå—?

1 个答案:

答案 0 :(得分:3)

å‡è®¾å…·æœ‰å„ç§â€œã€‚â€çš„域。必须包括“.coâ€ã€‚ä½ å¯ä»¥ä½¿ç”¨è¿™æ®µä»£ç ï¼š

Dim input As String = "hello.google.co.id"
Dim extension As String = ""
If (input.ToLower.Contains(".co.")) Then
    extension = input.Substring(input.ToLower.IndexOf(".co."), input.Length - input.ToLower.IndexOf(".co."))
Else
    extension = System.IO.Path.GetExtension(input)
End If

æ›´æ–°

正如通过评论所建议的那样,上é¢çš„代ç å¹¶æ²¡æœ‰è€ƒè™‘到很多å¯èƒ½æ€§ï¼ˆä¾‹å¦‚.ca.us)。下é¢çš„版本æ¥è‡ªä¸åŒçš„å‡è®¾ï¼ˆ.xx.yyåªæœ‰åœ¨æœ‰2个字符的组时æ‰èƒ½å‡ºçŽ°ï¼‰åº”该处ç†æ‰€æœ‰å¯èƒ½çš„替代方案:

If (input.ToLower.Length > 4 AndAlso input.ToLower.Substring(0, 4) = "www.") Then input = input.Substring(4, input.Length - 4) 'Removing the starting www.  

Dim temp() As String = input.Split(".")

If (temp.Count > 2) Then
    If (temp(temp.Count - 1).Length = 2 AndAlso temp(temp.Count - 2).Length = 2) Then
        'co.co or ca.ca, etc.
        extension = input.Substring(input.ToLower.LastIndexOf(".") - 3, input.Length - (input.ToLower.LastIndexOf(".") - 3))
    Else
        extension = System.IO.Path.GetExtension(input)
    End If
Else
    extension = System.IO.Path.GetExtension(input)
End If

在任何情况下,这都是一个诡辩的现实,因此这段代ç ï¼ˆåŸºäºŽå¯¹æƒ…况的éžå¸¸æœ‰é™çš„ç†è§£ï¼Œæˆ‘ç›®å‰çš„ç†è§£ï¼‰ä¸èƒ½è¢«è®¤ä¸ºæ˜¯100ï¼…å¯é çš„。有些情况甚至在ä¸çŸ¥é“给定字符集是å¦ä¸ºæ‰©å±•å的情况下甚至无法识别;例如:“hello.ue.coâ€ã€‚在æŸäº›æƒ…况下,至少在æŸç§æƒ…况下,该分æžåº”补充一个功能,检查给定的扩展å是å¦æœ‰æ•ˆï¼ˆä¾‹å¦‚,字典包括一组有效但ä¸æ˜Žæ˜¾çš„扩展å)。