Если это поиск с учетом регистра, то Split (char []) будет кратким решением.
$testString="Word"
$illegalCharacter =@{Warning=@("a","b");Error= @("c","d")}
if ($teststring.Split($illegalCharacter.Error).Count -gt 1) {
Write-Host "WORKS!"
}
Если вы хотите использовать * Оператор 1007 * или оператор -cmatch
(сопоставление с учетом регистра), вам необходимо создать выражение регулярного выражения, которое включает в себя чередования (|
).
$testString="Word"
$illegalCharacter =@{Warning=@("a","b");Error= @("c","d")}
$regex = ($illegalcharacter.Error |% { [regex]::Escape($_) }) -join '|'
if ($teststring -match $regex) {
Write-Host "WORKS!"
}
Символ регулярного выражения |
выполняет OR
. В этом случае он попытается сопоставить c
и, альтернативно, d
, если c
не совпадет. Специальные символы регулярных выражений должны быть экранированы, если вы соответствуете им буквально. Regex.Escape (String) автоматически экранирует символы регулярного выражения.