我很好奇如何匹配一个负数,特别是-20到19。我对bash相当新,并且之前从未尝试过负数。
答案 0 :(得分:3)
使用算术(似乎是更好的方法):
NUM="-20"
if [[ $NUM -gt -21 && $NUM -lt 20 ]];
then
echo "OK"
else
echo "FAIL"
fi
否则,如果你真的想使用正则表达式:
NUM="20"
if [[ $NUM =~ ^(-(20|1[0-9]|[1-9])|1?[0-9])$ ]];
then
echo "OK"
else
echo "FAIL"
fi
答案 1 :(得分:1)
试试这个正则表达式:
(-(20|1[0-9]|[1-9])|1?[0-9])