我需要搜索字符串以查看它是否包含字符串数组中的任何文本。例如
excludeList =“警告”,“一个常见的不重要的事情”,“别的东西”
searchString =这是一个字符串,告诉我们一个常见的不重要的事情。
otherString =常见但不相关的内容
在这个例子中,我们会在searchList中的数组中找到“常见的不重要的东西”字符串,并返回true。但是,otherString不包含数组中的任何完整字符串,因此将返回false。
我确定这不复杂,但我已经看了太久......
更新: 到目前为止我能得到的最好的是:
#list of excluded terms
$arrColors = "blue", "red", "green", "yellow", "white", "pink", "orange", "turquoise"
#the message of the event we've pulled
$testString = "there is a blue cow over there"
$test2="blue"
$count=0
#check if the message contains anything from the secondary list
$arrColors | ForEach-Object{
echo $count
echo $testString.Contains($arrColors[$count])
$count++
}
虽然它太优雅了......
答案 0 :(得分:9)
您可以使用正则表达式。 '|'正则表达式字符相当于OR运算符:
PS> $excludeList="warning|a common unimportant thing|something else"
PS> $searchString="here is a string telling us about a common unimportant thing."
PS> $otherString="something common but unrelated"
PS> $searchString -match $excludeList
True
PS> $otherString -match $excludeList
False
答案 1 :(得分:3)
下面的函数查找指定字符串中包含的所有项目,如果找到则返回true。
function ContainsAny( [string]$s, [string[]]$items ) {
$matchingItems = @($items | where { $s.Contains( $_ ) })
[bool]$matchingItems
}