6

Как отменить оператор регулярного выражения ZSH?

Я хотел бы сделать что-то вроде:

if [[ $host !~ '^myhost[0-9]+$' ]]
then
    # Do stuff
    # ...
fi

...или же:

if [[ !($host =~ '^myhost[0-9]+$') ]]
then
    # Do stuff
    # ...
fi

... но не похоже, что ZSH реализует какой-либо оператор отрицания регулярного выражения. Есть ли более простой способ, чем этот:

if [[ $host =~ '^myhost[0-9]+$' ]]
then
else
    # Do stuff
    # ...
fi

Спасибо!

1 ответ1

9

Отрицание всего теста будет самым легким. Главным образом потому, что это легко запомнить и не зависит от какого-либо конкретного синтаксиса условия:

if ! [[ $host =~ '^myhost[0-9]+$' ]]
then
    # Do stuff
    # ...
fi

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .