正则表达式应符合以下条件。点之前和之后的元素数量可以是任意的。仅允许 1 个点,并且仅在第一个位置允许负号。我不需要逗号。
例子:
1
-1
-1.
1.
1.2
-.2
-0.2
000.300
以上所有表达式都应为真。
所以如果我分手..
- 首先是一个可选的负号。
- 点之前的零个或多个数字。
- 点是可选的。最多可发生一次。它也可以是纯整数。
- 点之后的 O 或更多数字。
任何帮助将不胜感激。
你可能想要的是这样的:
^-?\d*\.?\d*
这将为您提供一个可能的负号 ( -?
),
后跟任意数量的数字 ( \d*
),
然后是可能的小数点 ( \.
),
然后是小数点后的任意数量的尾随数字 ( \d*
)。
由于您只想验证它是否是有效的浮点数,@MarcinJuraszek 有一个很好的观点,您可能不想在这里使用正则表达式。
1) 首先是一个可选的负号:
^ : 字符串的开始
- :减号
? :使前面的字符可选
2) 零位或多位数字
/d:数字
* : 匹配前一个事物的多个(包括零个)
3) 可选点
. : 点
? : 使点可选
4)点后有0个或更多细节
/d:数字
* : 匹配前一个事物的多个(包括零个)
所以一起:^-?/d*.?/d*
这是我的解决方案
优点
缺点
[-]?\d{1,18}(?:[,.]\d{1,2})?$