例如
google.com -> .com
google.co.id -> .co.id
hello.google.co.id -> .co.id
在 vb.net 中?
甚至可以做到吗?
例如
google.com -> .com
google.co.id -> .co.id
hello.google.co.id -> .co.id
在 vb.net 中?
甚至可以做到吗?
通过假设域具有各种“。” 必须包括“.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”。至少在某些情况下,这种分析应该辅以检查给定扩展是否有效的功能(例如,字典包括一组有效但不明显的扩展)。