我想检查一个元素是否存在于数组中。
$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
。
答案 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
运营商之间的差异。