问题描述
我再次在正则表达式上苦苦挣扎。我需要一个仅与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)?$