我無法弄清楚這一點。我需要從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