vik*_*ata 7 string powershell compare
我想知道,如果一个字符串包含的一个abc,def,xyz等我能做到这一点,如:
$a.Contains("abc") -or $a.Contains("def") -or $a.Contains("xyz")
Run Code Online (Sandbox Code Playgroud)
它确实有效,但如果这个子字符串列表发生变化,我必须更改代码,并且由于$a多次扫描,性能很差.
只需一个函数调用,有更有效的方法吗?
Mar*_*ndl 11
您可以使用-match方法并使用string.join自动创建正则表达式:
$referenz = @('abc', 'def', 'xyz')
$referenzRegex = [string]::Join('|', $referenz) # create the regex
Run Code Online (Sandbox Code Playgroud)
用法:
"any string containing abc" -match $referenzRegex # true
"any non matching string" -match $referenzRegex #false
Run Code Online (Sandbox Code Playgroud)