所有正实数的Bash regexp(不包括0)

时间:2017-06-01 06:29:56

标签: regex bash shell

以下regexp接受所有正实数(不包括0)

^(?!0*(\.0+)?$)(\d+|\d*\.\d+)$

它有效,例如在JavaScript中。 bash使用operator =〜进行测试的正确方法是使用与正则表达式一致的变量(例如,必须使用反斜杠对字符进行转义)。

Bash版本是4.4.12。

1 个答案:

答案 0 :(得分:0)

这样的事情应该做:

if [[ $v =~ ^([0-9]+|([0-9]*[.][0-9]+))$ ]] && ! [[ $v =~ ^(0*(\.0+))$ ]]; then 
    echo "Match"
fi