无法捕获正则表达式组?

无法捕获正则表达式组?

我有下面的 Bash 脚本,试图捕获“pingnet”的最后一位数字,但无法获得匹配。我在 regex101 中验证,我的正则表达式是正确的:

pingnet="pingcount,site=DC,cur=200 total-up=988"
regex='(\d+)$'
if [[ $pingnet =~ $regex ]]
then
    echo "YES"
    echo "${BASH_REMATCH[1]}"
else
    echo "NOT"
    echo "${BASH_REMATCH[1]}"
fi

运行脚本的结果不是。

答案1

Bash 的正则表达式语法无法识别\d;使用[[:digit:]]

pingnet="pingcount,site=DC,cur=200 total-up=988"
regex='([[:digit:]]+)$'

相关内容