我无法弄清楚这一点。我需要从FQDN中提取二级域。例如,所有的这些都需要返回 “example.com”:用于从FQDN提取二级域的正则表达式?
- example.com
- foo.example.com
- bar.foo.example.com
- example.com:8080
- foo.example.com:8080
- bar.foo.example.com:8080
这是我到目前为止有:
Dim host = Request.Headers("Host")
Dim pattern As String = "(?<hostname>(\w+)).(?<domainname>(\w+.\w+))"
Dim theMatch = Regex.Match(host, pattern)
ViewData("Message") = "Domain is: " + theMatch.Groups("domainname").ToString
它失败了example.com:8080
和bar.foo.example.com:8080
。有任何想法吗?
\ w在.Net Framework正则表达式语法中匹配字母数字[a-zA-Z0-9]。提问者提供的模式将不匹配破折号字符,该字符是主机名的有效字符。 – 2009-11-21 05:51:48