Я новичок в сценариях PowerShell и работаю над POC. Я застрял и не могу продолжить дальше, поэтому я отправляю свой вопрос на этом сайте, чтобы получить некоторые идеи/ответы.Как проверить соответствие массива определенной строковой части в PowerShell?
Задача состоит в том, чтобы сравнить массив значений с Regex. Но я не получаю желаемого результата. Вот код, который я написал до сих пор:
$array = @('MBS\FY16\11 May\Sirius Agreements\04 Build','MBS\FY16\11 May\Sirius Agreements\05 Build')
$values = 'MBS\FY16\11 May|MBS\FY16\12 Jan'
$Splitvalues = $values.Split('|')
[regex]$Regex = ‘(?i)^(‘ + (($Splitvalues | % {[regex]::escape($_)}) –join “|”) + ‘)$’
if($array -match $Regex)
{
echo "Matched"
}
else
{
echo "notmatched"
}`
Требование должно соответствовать любому из них из $ Values. Поэтому я разделяю их на канал, а затем создаю Regex с двумя значениями массива.
Когда я сравниваю с фактическим массивом значений $ array, он терпит неудачу. Он всегда идет к части else
.
Я думаю, когда мы будем использовать регулярное выражение для соответствия, оно вернет true, если точное слово соответствует исходным значениям. Или, может быть, я использую неправильное регулярное выражение.
мне просто нужно, чтобы соответствовать только точным значениям части либо «MBS \ FY16 \ 11 мая» или «MBS \ FY16 \ 12 июня» и возвратить совпавшее значение или сообщение.
Как решить эту проблему?