首页 > 解决方案 > 十进制利率的正则表达式

问题描述

我尝试为利率生成一个正则表达式,即^[0-9]\d*(\.\d+)?。但是这个正则表达式接受小数点后的无限数字。我希望我的正则表达式接受 1 到 100 之间的数字,只有两位小数。 1.00100.00

标签: regexmule

解决方案


如果要匹配整数或恰好 2 个小数位:

^(?:[1-9][0-9]?(?:\.[0-9]{2})?|100(?:\.00)?)$

正则表达式演示

如果 2 位小数是强制性的,您可以省略可选的非捕获组:

^(?:[1-9][0-9]?\.[0-9]{2}|100\.00)$
  • ^字符串的开始
  • (?:非捕获组
    • [1-9][0-9]?匹配数字 1-9 和可选的数字 0-9 以匹配范围 1-99
    • \.[0-9]{2}匹配一个点和 2 个数字
    • |或者
    • 100\.00匹配 100.00
  • )关闭组
  • $字符串结束

正则表达式演示


推荐阅读