我只需要知道如何制作一个接受最多 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