如何否定 ZSH 正则表达式测试?

如何否定 ZSH 正则表达式测试?

如何否定 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

对整个测试进行否定是最简单的。主要是因为它容易记住,并且不依赖于任何特定的条件语法:

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

相关内容