使用正则表达式将字符串与对象的多个值匹配?
Matching string against multiple values of an object with regex?
$Options = @{
a1 =@('Fish','Hotdog','BBQ Sauce','Cheeseburger','Trains go fast')
b1 = 'Beef'
b2 = 'Birthday cake'
}
$Dinner = 'Fish'
if($Dinner -match $Options.'^a+\d$'){$FoodOutput = 'Dinnertime!'}
elseif($Dinner -match $Options.b1){$FoodOutput = 'Weekend! Enjoy!'}
elseif($Dinner -match $Options.b2){$FoodOutput = 'Happy Birthday!'}
else{$FoodOutput = 'No Food! save money!'}
$FoodOutput
甚至可以用多个子选项匹配一个字符串吗?目标是如果 $Dinner 匹配 $Options.a* 中的任何字符串,它将触发 $FoodOutput 'Dinnertime!'
@AdminOfThing 添加的评论解决了我的问题。由于我不确定如何根据评论将其标记为已解决,因此我将其用作转义:P
$Options = @{
a1 =@('Fish','Hotdog','BBQ Sauce','Cheeseburger','Trains go fast')
b1 = 'Beef'
b2 = 'Birthday cake'
}
$Dinner = 'Fish'
if($Dinner -match ($Options.a1 -join '|')){$FoodOutput = 'Dinnertime!'}
elseif($Dinner -match $Options.b1){$FoodOutput = 'Weekend! Enjoy!'}
elseif($Dinner -match $Options.b2){$FoodOutput = 'Happy Birthday!'}
else{$FoodOutput = 'No Food! save money!'}
$FoodOutput
$Options = @{
a1 =@('Fish','Hotdog','BBQ Sauce','Cheeseburger','Trains go fast')
b1 = 'Beef'
b2 = 'Birthday cake'
}
$Dinner = 'Fish'
if($Dinner -match $Options.'^a+\d$'){$FoodOutput = 'Dinnertime!'}
elseif($Dinner -match $Options.b1){$FoodOutput = 'Weekend! Enjoy!'}
elseif($Dinner -match $Options.b2){$FoodOutput = 'Happy Birthday!'}
else{$FoodOutput = 'No Food! save money!'}
$FoodOutput
甚至可以用多个子选项匹配一个字符串吗?目标是如果 $Dinner 匹配 $Options.a* 中的任何字符串,它将触发 $FoodOutput 'Dinnertime!'
@AdminOfThing 添加的评论解决了我的问题。由于我不确定如何根据评论将其标记为已解决,因此我将其用作转义:P
$Options = @{
a1 =@('Fish','Hotdog','BBQ Sauce','Cheeseburger','Trains go fast')
b1 = 'Beef'
b2 = 'Birthday cake'
}
$Dinner = 'Fish'
if($Dinner -match ($Options.a1 -join '|')){$FoodOutput = 'Dinnertime!'}
elseif($Dinner -match $Options.b1){$FoodOutput = 'Weekend! Enjoy!'}
elseif($Dinner -match $Options.b2){$FoodOutput = 'Happy Birthday!'}
else{$FoodOutput = 'No Food! save money!'}
$FoodOutput