<p>What is the regular expression for a decimal with a precision of 2?</p>

<p><em>Valid examples</em>:</p>

<pre><code>123.12
2
56754
92929292929292.12
0.21
3.1
</code></pre>

<p><em>Invalid examples:</em></p>

<pre><code>12.1232
2.23332
e666.76
</code></pre>

<p>The decimal point may be optional, and integers may also be included.</p>

Valid regex tokens vary by implementation. A generic form is:
```
```
[0-9]+(\.[0-9][0-9]?)?
```
```
More compact:
```
```
\d+(\.\d{1,2})?
```
```
Both assume that both have at least one digit before and one after the decimal place.
To require that the whole string is a number of this form, wrap the expression in start and end tags such as (in Perl's form):
```
```
^\d+(\.\d{1,2})?$
```
```
To match numbers without a leading digit before the decimal (
```
.12
```
) and whole numbers having a trailing period (
```
12.
```
) while excluding input of a single period (
```
.
```
), try the following:
```
```
^(\d+(\.\d{0,2})?|\.?\d{1,2})$
```
```
Added
Wrapped the fractional portion in
```
()?
```
to make it optional.  Be aware that this excludes forms such as
```
12.
```
Including that would be more like
```
^\d+\\.?\d{0,2}$
```
.
Added
Use
```
^\d{1,6}(\.\d{1,2})?$
```
to stop repetition and give a restriction to whole part of the decimal value.