Почему '^ \ S' не работает для первого символа или значения NULL? - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть переменная, которая содержит два значения из таблицы (используя -expandproperty)

$variable = "value1,value2"

У меня есть проверка, чтобы убедиться, что $variable не имеет никакого возвращенного значения NULL / пусто

if(($variable.Split(",") | Where { $_ -match '^\S'}).count -lt 1)
{write "no value!"}
else
{write $variable}

но по какой-то причине, хотя '^\S' должен ТОЛЬКО проверять первый символ / индекс на наличие пробела, он выводит "

без значения

"результат условия ... он должен выводить

value1, value2

вместо ...

не только это, ноесли значение столбца таблицы равно NULL, оно не распознает его и вместо этого пытается вывести второе условие write $variable

почему это ??

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Еще один способ проверить наличие «null или empty» - использовать статический метод [string]IsNulOrEmpty().как-то так ...

$Var1 = "value1,value2"
$Var2 = ''
$Var3 = $Null

$Var1, $Var2, $Var3 |
    ForEach-Object {
        $_
        [string]::IsNullOrEmpty($_)
        }

output ...

value1,value2
False

True
True

обратите внимание, что последний $Null не выдал новую строку, а 2-й элемент [пустая строка] сделал.

0 голосов
/ 12 февраля 2019

\S не является белым пробелом.

\s является пробелом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...