我想知道字符串是否包含abc
,def
,xyz
等字符串。我可以这样做:
$a.Contains("abc") -or $a.Contains("def") -or $a.Contains("xyz")
它确实有效,但如果此子字符串列表发生更改,我必须更改代码,并且由于$a
被多次扫描,因此性能很差。
只用一个函数调用是否有更有效的方法?
答案 0 :(得分:11)
您可以使用-match方法并使用string.join自动创建正则表达式:
$referenz = @('abc', 'def', 'xyz')
$referenzRegex = [string]::Join('|', $referenz) # create the regex
用法:
"any string containing abc" -match $referenzRegex # true
"any non matching string" -match $referenzRegex #false
答案 1 :(得分:3)
正则表达式: $ a -match / \ a | def | xyz | abc / g (https://regex101.com/r/xV6aS5/1)