【发布时间】:2013-11-08 16:45:47
【问题描述】:
我只需要知道如何制作一个接受最多 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
【问题讨论】:
-
你使用的是
grep或sed还是什么? -
我已经编辑了我的帖子。我根本不介意涉及 grep 或 sed :)
-
@Bluz,你有
if-else倒退。if [[ $Engineer =~ ^[0-9]{1,2}$ && $Engineer -ne 0 ]];在Engineer中设置了非零两位数时返回 true,因此echo "yes"应遵循此 -
大声笑我是一个甜甜圈...表明我需要喝咖啡休息时间!谢了哥们! :)
-
当
Engineer的值为08或09时,您的测试仍然有问题。请在下面 1_CR 的回答中查看我的评论。