匹配浮动RegExp

Match float RegExp

本文关键字:RegExp      更新时间:2023-09-26

我需要匹配一个从0到20的浮点数

所有这些都必须有效:

1.20  
01.20  
12.00  
13,59  
11  
1  
08  
00.50
5,50  

不是那些:

001,20  
1.200  
13,
13.  
.50

综上所述。

  • 我想要逗号分隔符
  • 分隔符前的一位或两位数字(最小值=00最大值=20
  • 分隔符后的零、一或两个数字

我尝试了很多模式,但没有一个能完全匹配。

^([01]?'d)([,.]'d?'d)?$|^20([,.]0?0)?$

匹配从020的所有内容。

看到它在行动


想法是:

  • ^$-从字符串的开始到结束
  • ([01]?'d)-小数点之前的部分可以是一个位数('d)或有两个数字,其中第一个是01[01]?
  • [,.]-小数点,可以是点,也可以是逗号
  • 'd?'d-一位或两位
  • ()?-浮动部件是可选的
  • |-以上任一项匹配,或
  • 20——简称20
  • ([,.]0?0)?-带可选小数部分,由带一个或两个零的小数点组成