我知道这是一项相对简单的任务,但我是PowerShell的新手,在这种情况下,互联网搜索并没有真正帮助我:(
我有以下字符串 -
server1.us.domain.com
server2.domain.com
我想从这些中提取dns后缀,即
us.domain.com
domain.com
我尝试了几种方法。我到目前为止最接近的是
$a = 'us.domain.com'
PS C:\> $a.Split('.')
us
domain
com
答案 0 :(得分:3)
你很亲密。您应该使用该Split方法的第二个参数。其中指定了要返回的元素数。在这种情况下,$a
是“server1.us.domain.com”
PS C:\Users\mcameron> $a.Split('.',2)
server1
us.domain.com
您可以调用返回数组的第二个元素来获取域名。
PS C:\Users\mcameron> $a.Split('.',2)[1]
us.domain.com
为了完整性,另一种方法是在事后加入元素。你可以做的其他简单的事情。在这种特殊情况下,没有必要,但它们仍然是解决方案。
PS C:\Users\mcameron> ($a.Split(".") | Select -Skip 1) -join "."
us.domain.com
还可以使用.Substring()
。这依赖于.IndexOf()
来查找第一个句点的索引。
PS C:\Users\mcameron> $a.Substring($a.IndexOf(".") + 1)
us.domain.com
一个微小的正则表达式解决方案。在第一个时期之前没有任何替换。
PS C:\Users\mcameron> $a -replace "^.+?\."
us.domain.com