用于1或2或3十进制数字的正则表达式,不允许前导零,精度2和分数 - python

我正在尝试创建一个满足以下条件的正则表达式:

一或两个或三个十进制数。
十进制数字内没有前导零。
精度2。
允许使用适当的分数(0 .__个数字)。
十进制数字前无文字

正则表达式应符合以下条件:

123.45
103.67
100.45
25.68
5.97
1.05
23.07
187.08
0.26

正则表达式不应与以下内容匹配:

.45
1234.45
023.45
03.67
845.7

我想出了以下正则表达式:

(?<!.)^([1-9][0-9]{0,2}\.[0-9][0-9])$

除分数外,它满足以上所有条件。

我不希望前导零,以防十进制数字有2或3位数字。但是,如果它是适当的分数,我确实希望允许使用0 .__。

但是,我的正则表达式与“ 0 .__”十进制数字不匹配,因为由于“ ^[1-9]”,它期望数字以1开头。

请告知如何修改我的正则表达式以匹配“ 0 .__”数字。

python大神给出的解决方案

试试这个正则表达式。

\b(?!0\d{1,2}\.)\d{1,3}\.\d{2}\b

见Demo