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")
}
期望的输出:假
解决方案
运算符的左侧 (LHS) 和右侧 (RHS) 是相反的。的 RHS-match
需要是正则表达式字符串。以下将给出所需的结果。
$Sentence -match $Keywords
如果您使用 , 将单个字符串与正则表达式字符串进行比较-match
,True
则将在匹配时返回。False
否则返回。当 LHS 是一个数组而不是单个字符串时,则返回集合中成功匹配的项目。
推荐阅读
- javascript - Unable to fetch JSON from Express server using Fetch api
- java - 在选项卡式活动中找不到添加的元素
- javascript - 如何正确访问模块内的类属性和函数
- java - Why do you need timeout in milliseconds and Why do I have to declare 2 Classes with separate run () methods for separate blocks
- java - java.lang.IllegalArgumentException:不再解析元素
- c++ - 在给定的约束下填充一个 3x3 矩阵
- javascript - 如何使用 alpha 通道将 gltf 模型添加到 Aframe 和 AR.js?
- ruby - 在这种情况下如何提示用户他们已经进行了选举
- python - Python collections.Counter,如何避免双重查找
- javascript - 提交时的 JQuery 内容可编辑 div 和文本框