用正则表达式匹配浮点数

Match floating point number with regular expression

我试图在 neo4j 中使用正则表达式查找给定范围内的浮点数。例如,return 0-5 范围内的所有数字。所以结果可能是:1、1.1、5.21、4.45。我使用的是正则表达式 [0-5]*[.][0-5]* 但它也是 return 大于 5 的结果,这是不正确的。我想以与字符串匹配的方式处理正则表达式,因为我的数据库设计为节点包含字符串、整数和浮点数,它们都是形式或字符串。所以我想用正则表达式匹配浮点值。

这是一个正则表达式,用于匹配 05 之间的数字以及介于两者之间的小数:

^(?:[0-4](\.[0-9]+)?|5(\.0+)?)$

解释:

  • ^ - 字符串开头
  • (?: - 非捕获组开始,用于OR
    • [0-4] - 04
    • 之间的整数
    • (\.[0-9]+)? - 可选 . 和数字
    • | - 或者
    • 5 - 文字 5
    • (\.0+)? - 可选 . 和 zeros
  • ) - 非捕获组结束
  • $ - 字符串结尾