我的要求是验证一个非零数字。我使用的正则表达式如下。
^[1-9]?\d+(\.\d)?\d*$
有效值应为
- 2
- 22
- 2222(最多任意数字)
- 2.2222(最多小数点位数)
无效值
- 0
-
- (。不带十进制值)
- 0.1(任意小数位数,但起始数字为0)
- 2.4.5(一个以上)。
基本上任何以0或大于1开头的值。或时未提供小数点。被添加,不正确。
我的要求是验证一个非零数字。我使用的正则表达式如下。
^[1-9]?\d+(\.\d)?\d*$
有效值应为
无效值
基本上任何以0或大于1开头的值。或时未提供小数点。被添加,不正确。
^[1-9]\d*(?:\.\d+)?$
https://regex101.com/r/wHZUoW/1
-由于您不希望数字以0
开头,因此不应将[1-9]
开头的?
设为可选。
-作为一种良好的常规做法,使用非捕获组(?: ... )
代替捕获组,因为以后不需要引用内容。
您可以使用此正则表达式来验证您的号码:
expand_and_put(a,(3,4),9)
它使用@WiktorStribiżew提出的正则表达式作为对Gson的注释,以匹配十进制数字(^(?=[1-9])\d*\.?\d+$
),并添加正向查找以确保数字的第一个字符不为0。请注意,如果要允许使用诸如^\d*\.?\d+$
之类的数字,则应将.3
添加到前瞻字符类中,即.
[1-9]+[0-9]*(\.[0-9]+)?
应该适合您的情况。
[1-9]+
将确保表达式以不同于0的数字开头。
[0-9]*
将确保允许表达式在第一位数字后加零。
(\.[0-9]+)?
将允许表达式的扩展,该表达式必须具有.
及其后至少一个数字。最后的?
使其成为可选。
顺便说一句,我真的很喜欢这个网站来测试我的正则表达式:https://regexr.com/,您应该尝试一下。