一、正则表达式
使用正则匹配大于0的正整数、带1-2位小数的正浮点数:
(?!(^[0.]*$))((^[1-9]\d*$)|(?!(^0{2,}.))(?!(^0{1,}[1-9]+))(^[0-9]+.\d{1,2}$))
二、分析
(?!(^[0.]*$)
(?!exp1)exp2 正向否定查找 表示从不匹配exp1的字符串开始查找exp2
(^[1-9]\d*$)
匹配一位1-9开头的,后面跟任意位0-9的正整数
(?!(^0{2,}.))(?!(^0{1,}[1-9]+))
不允许多个0开头的或整数部分有0开头的,如000.1或01.1
(^[0-9]+.\d{1,2}$)
匹配有小数点,且整数位有至少一位0-9,小数位有1-2位的正浮点数
三、推荐
一个正则表达式自动分析、批量匹配、说明的正则测试网站:
https://regex101.com/