正则表达式以验证十进制数

时间:2013-10-22 21:12:04

标签: c# .net regex

正则表达式应符合以下条件。点之前和之后的元素数量可以是任意数量。仅允许1个点,仅在第一个位置允许使用负号。我不需要逗号。

示例:

1
-1
-1.
1.
1.2
-.2
-0.2
000.300

以上所有表达式都应该成立。

所以如果我分手了......

  1. 首先是可选的负号。
  2. 点前零或更多数字。
  3. Dot是可选的。最多可以发生一次。它也可以是纯整数。
  4. 点后O或更多位数。
  5. 任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:5)

你可能想要的是:

^-?\d*\.?\d*

这会给你一个可能的负号(-?),
后跟任意数字(\d*),
后跟一个可能的小数点(\.),
后跟小数点后的任意数量的尾随数字(\d*)。

由于你只是想验证它是否是一个有效的浮点数,所以@MarcinJuraszek有一个好点,你可能不想在这里使用正则表达式。

答案 1 :(得分:2)

1)首先是可选的负号:

^:字符串的开头

- :减号

? :使前面的字符可选

2)零个或多个数字

/ d:数字

*:匹配前一个事物的数量(包括零)

3)可选点

。 :点

? :使点可选

4)点后的0或更多细节

/ d:数字

*:匹配前一个事物的数量(包括零)

所以一起:^ - ?/ d *。?/ d *

答案 2 :(得分:0)

这是我的解决方案

<强>赞成

  • 用户可以指定精度
  • 接受逗号或点
  • 接受否定值
  • 接受整数

<强>缺点

  • 不适用于.0或0. :(

      

    [ - ] \ d {1,18}?(?:[。,] \ d {1,2})?$

  •