正则表达式最多16位数字,可选十进制数字内的任何位置

时间:2014-11-03 23:31:48

标签: regex

我试图找到正确的正则表达式模式,以匹配最多16位数的任何数字,在数字的任何位置都有一个可选的小数点。以下是一些例子。

有效:

  • 9999999999999999
  • 0.000000000000001
  • 3.24
  • 1.2
  • 0.00003

无效:

  • 12345678910111213
  • 59.492.5

2 个答案:

答案 0 :(得分:2)

根据上述评论.0 00000000000000003无效,请使用此模式

^(?!0\d|\.|.*?\..*?\.)(?=(?:\.?\d){1,16}$)(.*)$

Demo

答案 1 :(得分:0)

我认为您不想允许.number(即,下面的正则表达式与.67.08等数字相匹配,

^(?:(?=.{3,17}$)\d+\.\d+|\d{1,16})$

DEMO