我正在努力找到正确的正则表达式模式,以匹配最多16位的任何数字,并在数字中的任何位置使用可选的小数点。下面是一些例子。
有效:
- 9999999999999999
- 0.000000000000001
- 3.24
- 1.2
- 0.00003
无效:
- 12345678910111213
- 59.492.5
根据上面关于.0
0000000000
和0000003
无效的注释,使用此模式
^(?!0d|.|.*?..*?.)(?=(?:.?d){1,16}$)(.*)$
演示
我假设您不想允许.number
(即,下面的正则表达式与.67
、.08
等数字不匹配),
^(?:(?=.{3,17}$)d+.d+|d{1,16})$
演示