我想将部分句子与另一个字符串匹配。
在下面的示例中,我希望它在其他字符串中找到“ Hello”,“ Mich”和“ Brooklyn”后显示“ True”。这就是Linux中的工作方式,我看不到有人在PS中这样做。我想创建一个已经包含通配符的字符串,以简化编码。
$Keywords = "Hello.*Mich.*Brooklyn"
示例1
$Sentence = "Hello I am Michael From Brooklyn New York"
if ($Keywords -Match $Sentence) {
Write-Host("True")
} else {
Write-Host("False")
}
所需的输出: 是
示例2
# Output should be 'False'
$Sentence = "Hello I am Michael From QUEENS New York"
if ($Keywords -Match $Sentence) {
Write-Host("True")
} else {
Write-Host("False")
}
所需的输出:False
答案 0 :(得分:2)
操作员的左侧(LHS)和右侧(RHS)颠倒。 -match
的RHS必须是正则表达式字符串。以下将给出预期的结果。
$Sentence -match $Keywords
如果使用-match
将单个字符串与正则表达式字符串进行比较,则如果存在匹配项,将返回True
。否则返回False
。如果LHS是数组而不是单个字符串,则将返回成功匹配的集合中的项目。