小数位正则表达式的问题

时间:2013-08-30 15:00:12

标签: regex

我已经尝试了很多使用我的正则表达式找出值,但不知何故它不起作用,有些人可能会帮助。


    $102
    $102.36
    $204.36

我正在使用正则表达式


    [$]\\d+[.]\\d{0,2}

但这只是取小数存在的值(对于我的情况102.36和204.36),但对于我的情况,小数是可选的,请帮助我。

2 个答案:

答案 0 :(得分:1)

?与括号一起用于可选部分:

[$]\\d+([.]\\d{0,2})?

答案 1 :(得分:0)

\$([0-9]+(\.[0-9]+)?))

美元符号后跟一个或多个次数,后面跟着(一个点后跟一个数字1次或更多次)

\$([0-9]+(\.[0-9]{2})?)

相同但只匹配2dp,第一个(非第0个)匹配类将包含该数字。

第0场比赛:全部(包括$)

第一场比赛:所有数字

第二场比赛:小数点和后面的数字(如果有的话)

不捕获与Perl风格或Regex的第二场比赛:

\$([0-9]+(?:\.[0-9]{2})?)