我正在尝试创建一个满足以下条件的正则表达式:
一或两个或三个十进制数。
十进制数字内没有前导零。
精度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