数字的正则表达式

时间:2016-05-16 11:08:46

标签: regex bash

我是用bash写的,这个脚本应该输出'success',但事实并非如此。数字的正则表达式是错误的吗?

var=5
if [[ "$var" =~ ^[:digit:]$ ]]; then 
    echo success
fi

日Thnx!

2 个答案:

答案 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]$ ]]