正则表达式应匹配0-999、0.0-999.9以及0,0-999,9

问题描述

我再次在正则表达式上苦苦挣扎。我需要一个仅与0-999或0-999的数字匹配一个小数的正则表达式,例如。 0.0-999.9。

我制作的/^([1-9][0-9]{0,2})|([1-9][0-9]{0,2})[,.][0-9]$/正则表达式有一个错误,它也匹配1.,而不是1.5。

更多示例:

1 -> Match (in range 0-999)
1. -> No Match (no decimal)
1,-> Again no Match (no decimal)
1,5 -> Matches (in range 0,0-999,9)
1324 -> doesn't Match (over 999,9)
15.5 -> Matches (in range 0.0-999.9)
999,9 -> Matches (max. reached)

提前感谢您的帮助。

解决方法

^(?:[1-9]\d{1,2}|\d)(?:[.,]\d)?$应该可以工作。

演示:https://regex101.com/r/vsL89V/3

,

要在0-999之间匹配一个可选部分以匹配.,,可以使用

^\d{1,3}(?:[.,]\d)?$

regex demo

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...