我有一个CSV文件,其中一个Colums称为Location。它包含“Office CityX”和“Home Office”。我想将它们插入AD。
我试过了:
$Location = -split $user.Location
$NewLocation = $Location[1]
很明显,我得到了City1,City2,......和“办公室”但我想要“家庭办公室”。 我如何拆分,以便我得到城市和整个“内政部”?
答案 0 :(得分:2)
仅当位置包含单词city
:
$NewLocation = if ($user.Location -like '*city*') {
$user.Location.Split()[1]
} else {
$user.Location
}
另一种选择(如果你有城市名称而不是“城市”这个词)将使用这样的正则表达式:
$NewLocation = if ($user.Location -match 'amsterdam|nairobi|rome|...') {
$user.Location.Split()[1]
} else {
$user.Location
}
或者,如果它只是您不想拆分的“家庭办公室”位置,您可以这样做:
$NewLocation = if ($user.Location -ne 'home office') {
$user.Location.Split()[1]
} else {
$user.Location
}
答案 1 :(得分:1)
我会提供另一种选择,以防它最终减少City1,City2,City3以及更多的奥兰多,芝加哥,西雅图。
RegEx可让您轻松拆分,并可容纳多字城市名称(而不是,,Office New York
成为New
)。另外,-split
方法默认使用正则表达式。我们将捕获所需的文本,以便从拆分中返回,而不是排除。
$NewLocation = $_.Location -split ",,(?:Office )?(Home Office|(?<=Office ).+$)"
有关详细信息,请查看此RegEx101 link.
现在,如果我们抛出一些字符串,它将返回&#34; Home Office&#34;或者随后的任何事情&#34; ,, Office&#34;。例子:
,,Office Seattle
,,Home Office
,,Office Chicago
变为:
Seattle
Home Office
Chicago