Regex 大于十进制值的正则表达式匹配数

Regex 大于十进制值的正则表达式匹配数,regex,numbers,decimal,Regex,Numbers,Decimal,我要写入的正则表达式必须匹配所有大于0.01且小数点后最多两位的数值 要匹配小数点最多两位数的所有数字,有效的正则表达式是“”^\\d+(?:\\\.\\d{1,2})?$” 我在互联网上研究过regex大于某些值,但只发现regex大于整数的例子,它们的工作原理不同 有什么建议吗?我不确定这是否完全满足您的要求,我无法发表评论,但我认为您可以通过前瞻性筛选零匹配对象:(?!0+\.0+$)^\d+(?:\。\d{1,2})?$要将大于0.01的数值与小数点后最多两位数字相匹配,可以使用负前瞻(

我要写入的正则表达式必须匹配所有大于
0.01
且小数点后最多两位的数值

要匹配小数点最多两位数的所有数字,有效的正则表达式是“
”^\\d+(?:\\\.\\d{1,2})?$”

我在互联网上研究过regex大于某些值,但只发现regex大于整数的例子,它们的工作原理不同


有什么建议吗?

我不确定这是否完全满足您的要求,我无法发表评论,但我认为您可以通过前瞻性筛选零匹配对象:
(?!0+\.0+$)^\d+(?:\。\d{1,2})?$

要将大于
0.01的数值与小数点后最多两位数字相匹配,可以使用负前瞻
(?!
在字符串的开头,断言一个或多个带可选点的零直到字符串的结尾或字符串以
0.01
开头时才会出现

例如,这也将不匹配
0
0.0
0.00
00000000000

详细信息

  • ^
    在行首断言位置
  • (?!
    断言右侧的内容不是
    • 0+(?:\.0+)$
      将一个或多个零与一个点和一个或多个零匹配的可选部分匹配,并断言行的结尾
    • |
    • 0+\.01$
      匹配一个或多个后跟.01的零,并断言行尾
  • 关闭反向前瞻
  • \d+
    匹配一个或多个数字
  • (?:\。\d{1,2})
    一个可选部分,它将匹配一个点,后跟一个或两个数字
  • $
    在行尾断言位置

XY问题?你为什么需要这个?只需解析并比较。对于?我认为这非常接近我想要的,区别在于它检查大于0.1而不是0.01的值。它还说0是可以的,这不是正确的。我认为我犯了一个错误,请现在检查它。@user202729你的意思是什么?我认为它非常清楚。它应该匹配所有大于0.01且小数点后不超过2位的数值