For numbers that don't have a thousands separator, I like this simple, compact regex:
\d+(\.\d{2})?|\.\d{2}
or, to not be limited to a precision of 2:
\d+(\.\d*)?|\.\d+
The latter matches
1
100
100.
100.74
100.7
0.7
.7
.72
And it doesn't match empty string (like \d*.?\d* would)