2

我正在寻找一个正则表达式来匹配最多 7 位数字的浮点数。我不知道如何处理小数点。甚至可以将其与正则表达式匹配吗?小数点左侧必须至少有 1 位,右侧至少有 0-6 位,但总位数必须为 7 或更少。

例子:

好的:

  • 1.234567
  • 0.1
  • 1234567
  • 1

坏的:

  • .1234567
  • 12345678
  • 1.2.34567
4

1 回答 1

7

以下应该有效:

^(?!.*\..*\.|\d{8})\d[\d.]{,7}$

示例:http ://www.rubular.com/r/gglVngm0pH

解释:

^            # beginning of string anchor
(?!          # start negative lookahead (fail if following regex can match)
   .*\..*\.    # two or more '.' characters exist in the string
   |           # OR
   \d{8}       # eight consecutive digits in the string
)            # end negative lookahead
\d           # match a digit
[\d.]{,7}    # match between 0 and 7 characters that are either '.' or a digit
$            # end of string anchor
于 2013-02-19T17:50:00.647 回答