匹配句子中的连续单词

时间:2020-07-31 18:18:13

标签: powershell

我想将部分句子与另一个字符串匹配。

在下面的示例中,我希望它在其他字符串中找到“ 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

1 个答案:

答案 0 :(得分:2)

操作员的左侧(LHS)和右侧(RHS)颠倒。 -match的RHS必须是正则表达式字符串。以下将给出预期的结果。

$Sentence -match $Keywords

如果使用-match将单个字符串与正则表达式字符串进行比较,则如果存在匹配项,将返回True。否则返回False。如果LHS是数组而不是单个字符串,则将返回成功匹配的集合中的项目。