判断金额小于等于20,小数位数只能有1位,不是负数的正则表达式

如题,我要写一个判断金额小于等于20,小数位数只能有1位,不是负数的正则表达式,有人能写出来吗?

Ruby或者JavaScript之类的话
[code="ruby"]/^(?:20(?:.0)?|1?\d(?:.\d)?)$/[/code]
Java的话加转义:
[code="java"]"^(?:20(?:\.0)?|1?\d(?:\.\d)?)$"[/code]

[code="java"]
/^1?\d(.\d)?$/
[/code]

[code="java"]public boolean test(Number num) {
boolean result = Pattern.matches("^(20(.0*)?)|((1*\d)(.\d0*)?)$", num.toString());
return result;
}[/code]

搞错了,应该是
"^(20(.0*)?)|((1?\d)(.\d0*)?)$"

我也在找这个,哈哈

楼上正解 :D :D

/^((1\d||20||\d)(.\d)?)$/