bash 获取最多 2 位的正则表达式编号



我只需要知道如何制作一个接受最多 2 位数字的正则表达式

我刚才只有

^[0-9]{2}$
这将匹配正好 2 位数字的数字

,但我不知道如何指定"匹配最多 2 位数字的数字"。

另外,如果有办法确保这个数字不是 0,那么这将是一个加号,否则我可以用 Bash 检查。

谢谢 ! :)

请注意,输入变量来自 read -p "做出选择" 数字

编辑我的帖子 - 在上下文中显示代码:

while true; do
    read -p "Please key in the number of the engineer of your choice, or leave empty to select them all: " Engineer
    if [ -z "$Engineer" ]; then
        echo "No particular user specified, all engineers will be selected."
        UserIdSqlString="Transactions.Creator!=0 "
        break
    else
        if [[ $Engineer =~ ^[0-9]{1,2}$ && $Engineer -ne 0 ]]; then
            echo "If you want a specific engineer type their number otherwise leave blank"  
        else
            echo "yes"
            break
        fi
    fi
done

bash [[ 条件表达式支持扩展正则表达式。

[[ $number =~ ^[0-9]{,2}$ && $number -ne 0 ]]

或者正如无与伦比的@gniourf_gniourf在他的评论中指出的那样,需要以下内容才能正确处理带有前导零的数字

[[ $number =~ ^[0-9]{,2}$ ]] && ((number=10#$number))
^([1-9]|[1-9]{1}[0-9]{1})$

匹配 1、2、3...99 中的每个数字

我找到的答案是:

^[0-9]{1,2}$
#!/bin/bash
if [ "$1" -gt 0 ] 2>/dev/null ;then 
    echo "$1 is number." 
else 
    echo 'no.' 
fi 

最新更新