正则表达式,用于查找数字,0或小数

时间:2011-01-31 13:20:28

标签: regex

我正在寻找一个正则表达式,它可以验证从0开始的数字 - 并且可能包含小数。

有什么想法吗?

6 个答案:

答案 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\.]+)$/'
如果测试字符串是正十进制数,

将匹配