4

例如

google.com -> .com

google.co.id -> .co.id

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

在 vb.net 中?

甚至可以做到吗?

4

1 回答 1

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”。至少在某些情况下,这种分析应该辅以检查给定扩展是否有效的功能(例如,字典包括一组有效但不明显的扩展)。

于 2013-10-30T14:23:51.490 回答