我希望知道如何判断一个字符串是否包含abc
、def
、xyz
等字符。可以这样实现:
$a.Contains("abc") -or $a.Contains("def") -or $a.Contains("xyz")
这种方法虽然可以工作,但如果子字符串列表发生变化,就需要改变代码,而且由于多次扫描$a
,性能较差。
有没有更高效的方法只需一个函数调用就可以完成?
我希望知道如何判断一个字符串是否包含abc
、def
、xyz
等字符。可以这样实现:
$a.Contains("abc") -or $a.Contains("def") -or $a.Contains("xyz")
这种方法虽然可以工作,但如果子字符串列表发生变化,就需要改变代码,而且由于多次扫描$a
,性能较差。
有没有更高效的方法只需一个函数调用就可以完成?
$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
正则表达式: $a -match /\a|def|xyz|abc/g (https://regex101.com/r/xV6aS5/1)
$referenzRegex = [string]::Join('|', [Regex]::Escape($referenz)) # create the regex
来解决这个问题。 - Rosberg Linhares