我正在寻找一个正则表达式,它可以验证从0开始的数字 - 并且可能包含小数。
有什么想法吗?
答案 0 :(得分:2)
验证数字的简单正则表达式:
^\d+(\.\d+)?$
这适用于带有可选前导零的数字,带有可选的单点和更多数字。
^...$
- 从字符串的开头到结尾匹配(不会验证ab12.4c
)\d+
- 至少一位数。(...)?
- 可选组... \.\d+
- 字面点和一个或多个数字。答案 1 :(得分:1)
因为十进制数字可能包含也可能没有小数点,和如果之后有一些小数点可能会有或没有数字,和可能如果它们之前有一些数字,或者可能没有小数点后面的数字,你必须使用它:
^(\d+(\.\d*)?|\d*\.\d+)$
通常写得更好:
^(?:\d+(?:\.\d*)?|\d*\.\d+)$
和多写得更好:
(?x)
^ # anchor to start of string
(?: # EITHER
\d+ (?: \. \d* )? # some digits, then optionally a decimal point following by optional digits
| # OR ELSE
\d* \. \d+ # optional digits followed then a decimal point and more digits
) # END ALTERNATIVES
$ # anchor to end of string
如果您的正则表达式编译器不支持\d
,或者还取决于您的正则表达式引擎的Unicode识别方式,如果您希望仅匹配ASCII数字而不是任何具有Unicode Decimal_Number
属性的数字(快捷方式Nd
) - 即具有Numeric_Type=Decimal
属性的任何内容 - 您可能希望将[0-9]
替换为我使用\d
之上的所有实例。< / p>
答案 2 :(得分:0)
这应该做你想要的:
^[0-9]+([,.][0-9]+)?$
它将匹配以0开头的任何数字,然后是任何数字,可能是a或。和任何数字
答案 3 :(得分:0)
我总是使用RegExr来构建我的正则表达式。它有点拖放,可以预览你的正则表达式和结果。
它看起来像^ 0 [,。0-9] *
答案 4 :(得分:0)
^[0-9]+(\.[0-9]+)?$
请注意,使用此表达式0.1将有效,但.1不会。
答案 5 :(得分:-1)
'/^([0-9\.]+)$/'
如果测试字符串是正十进制数,将匹配