Я не могу понять это. Мне нужно извлечь домен второго уровня из полного доменного имени. Например, все они должны вернуться "example.com":Regex для извлечения домена второго уровня из полного доменного имени?
- 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 соответствует буквенно-цифровому [a-zA-Z0-9] в синтаксисе регулярного выражения .Net Framework. Шаблон, предоставленный вопрошателем, не будет соответствовать символу тире, который является допустимым символом для имени хоста. –