我想检查一个元素是否存在于数组中

时间:2015-12-30 11:49:42

标签: powershell

我想检查一个元素是否存在于数组中。

$data = "100400296 676100 582"
$i = "18320-my-turn-582"
if ($data -like $i) { Write-Host "Exist" }
else { Write-Host "Didn't exist" }

此示例不能像我想要的那样工作。 $i包含582,因此我希望结果为Exist

1 个答案:

答案 0 :(得分:3)

"18320-my-turn-582"中的字符$data不存在,即使两个字符串都包含子字符串582

PowerShell会将您的字符串视为一个整体,18320-my-turn-582中不存在100400296 676100 582。要解决这个问题,你可以:

使用正则表达式:

$i -match '\d+$'
$data -match $Matches[0]

$i拆分为连字符,这样您就可以:

$i = $i -split '-'
# turns $i into a array with the elements:
# 18320
# my
# turn
# 582

$data -match $i[-1]
# Output: 100400296 676100 582

结帐Get-Help about_Comparison_Operators以了解-Contains-Match-Like运营商之间的差异。