Проверьте строку в массиве - PullRequest
0 голосов
/ 21 марта 2019

Я ищу, как проверить значения строки в значениях массива.

Мой массив [array]$a01 содержит значения, как показано ниже

WQA-JK-KUC-I01-hjkl-192.178.10.128/27
WQA-JK-KUC-I01-hjkl-192.178.10.160/27
WQA-JK-KUC-P02-hjkl-192.178.9.64/27
WQA-JK-KUC-P02-hjkl-192.178.9.96/27
WQA-JK-KUC-P01-NCI-hjkl-192.178.9.224/27
WQA-JK-KUC-P01-NCI-hjkl-192.178.10.0/27
WQA-JK-KUC-I01-EAD-194.270.24.0/24
WQA-JK-KUC-I01-KAT-194.270.28.0/24
WQA-JK-KUC-I01-ETKK-194.270.32.0/24
WQA-JK-KUC-I01-hjkl-192.178.10.64/27
WQA-JK-KUC-I01-hjkl-192.178.10.96/27
WQA-JK-KUC-I01-hjkl-192.178.10.192/27
WQA-JK-KUC-P01-NCI-hjkl-192.178.9.160/27
WQA-JK-KUC-P01-NCI-hjkl-192.178.10.32/27
WQA-JK-KUC-P01-NCI-hjkl-192.178.9.192/27
WQA-JK-KUC-P01-NCI-EAD-199.198.168.0/23
WQA-JK-KUC-P01-NCI-KAT-199.198.176.0/23
WQA-JK-KUC-P01-NCI-ETKK-199.198.184.0/23
WQA-JK-KUC-P01-NCI-EAD-199.198.170.0/23
WQA-JK-KUC-P01-NCI-KAT-199.198.178.0/23
WQA-JK-KUC-P01-NCI-ETKK-199.198.186.0/23
WQA-JK-KUC-P01-KAT-194.270.168.0_23

, и у меня есть две переменные

$v01 = 'abc-ekc-20-ghjkl-79-cis-4321-WQA-JK-KUC-P01-KAT-194.270.168.0_23'
$v02 = 'abc-ekc-20-ghjkl-79-cis-4321-WQA-JK-KUC-P01-NCI-hjkl-192.178.9.160/27'

Я пишу код

if (($v01 -in $a01) -and ($v02 -in $a01)) {
    Write-Host "It is part of the array"
} else {
    "Not in array"
}

Вывод: «Не в массиве».

1 Ответ

0 голосов
/ 21 марта 2019

Чтобы проверить только часть, начинающуюся с WQA, сначала разбейте содержимое с помощью нулевой длины с заблаговременным утверждением

Оператору -and нужна начальная черта.

if ((($v01 -split '(?=WQA)')[-1] -in $a01) -and 
    (($v02 -split '(?=WQA)')[-1] -in $a01)) {
    Write-Host "It is part of the array"
} else {
    "Not in array"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...