我是用bash写的,这个脚本应该输出'success',但事实并非如此。数字的正则表达式是错误的吗?
var=5
if [[ "$var" =~ ^[:digit:]$ ]]; then
echo success
fi
日Thnx!
答案 0 :(得分:2)
您需要将[:digit:]
放在角色类中:
var=5
if [[ "$var" =~ ^[[:digit:]]$ ]]; then
echo success
fi
另请注意,如果要匹配多位数字(> 9
),则需要使用加号元字符(+
):
if [[ "$var" =~ ^[[:digit:]]+$ ]]; then
echo success
fi
答案 1 :(得分:0)
您需要将字符类[:digit:]
放在括号表达式[]
中:
[[ "$var" =~ ^[[:digit:]]$ ]]
在ASCII语言环境中,这必须等同于:
[[ "$var" =~ ^[0-9]$ ]]