我只需要知道如何制作一个接受最多2位数字的正则表达式
我现在所拥有的只是
^[0-9]{2}$
哪个匹配一个只有2位数的数字,但我不知道如何指定“匹配最多2位数的数字”。
另外,如果有办法确保这个数字不是0那么这将是一个加号,否则我可以用Bash检查。
谢谢! :)
请注意,输入变量来自read -p“make a choice”Number
编辑我的帖子 - 在背景中显示代码:
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
答案 0 :(得分:8)
bash [[条件表达式支持扩展正则表达式。
[[ $number =~ ^[0-9]{,2}$ && $number -ne 0 ]]
或者作为无法模仿的@gniourf_gniourf在他的评论中指出,需要以下方法才能正确处理带有前导零的数字
[[ $number =~ ^[0-9]{,2}$ ]] && ((number=10#$number))
答案 1 :(得分:5)
-_-一直在寻找这个20分钟,我发布这个后就找到了答案...... ^ [0-9] {1,2} $
答案 2 :(得分:5)
^([1-9]|[1-9]{1}[0-9]{1})$
匹配1,2,3 ... 99
中的每个数字答案 3 :(得分:0)
#!/bin/bash
if [ "$1" -gt 0 ] 2>/dev/null ;then
echo "$1 is number."
else
echo 'no.'
fi