以十进制表示利率的正则表达式



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

如果您想匹配整数或小数点后两位:

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

Regex演示

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

^(?:[1-9][0-9]?.[0-9]{2}|100.00)$
  • ^字符串开始
  • (?:非捕获组
    • [1-9][0-9]?匹配数字1-9和可选数字0-9以匹配范围1-99
    • .[0-9]{2}匹配一个点和两位数字
    • |
    • 100.00匹配100.00
  • )关闭组
  • $字符串末尾

Regex演示