浮点数的 Ruby 正则表达式

use*_*871 1 ruby regex

我在用 ruby​​ 构建浮点数时遇到问题。

该数字可以是负数也可以是正数。

可以是这样的:0.00000020402(如果数字小于 1,则小数点前必须有 1 个零。

0.5 是正确的方法,但不是 0.5

这是唯一的规则,否则,其他任何规则都可以,如下所示:

-0.4224(负)或-0.00002(负)或5.2525

那么有人可以帮助我了解涵盖这些浮点数情况的正则表达式是什么吗?

这是我到目前为止所拥有的:^[+-]?(?:(?!0)\d{1,2}|0)(?:.[05])?$

eli*_*ide 6

如果你只想匹配浮点数,你可以这样做:

^[+-]?([1-9]\d*|0)(\.\d+)?$
Run Code Online (Sandbox Code Playgroud)

正则表达式可视化

调试演示

例子:

  • 0.5 火柴
  • .5 不匹配
  • 00.5 不匹配
  • 123.0 火柴
  • +1123 火柴
  • -0.4 火柴
  • 0. 不匹配
  • -.4 不匹配
  • +0.54 火柴

编辑:如果您想将其排除-0为匹配项,请使用以下命令:

^(?!-0$)[+-]?([1-9]\d*|0)(\.\d+)?$
Run Code Online (Sandbox Code Playgroud)

正则表达式可视化

调试演示