拆分返回特定数量的元素

时间:2014-12-22 15:09:16

标签: powershell string-split

我知道这是一项相对简单的任务,但我是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

1 个答案:

答案 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