正则表达式十进制数验证忽略字符串的第一个索引的负号验证

时间:2019-03-27 13:16:32

标签: java regex

我有一个以下正则表达式,用于验证带小数点的十进制数字。

REGEX_VALID_DECIMAL_NUMBER = "\\d+(\\.\\d+)*";

因此,根据模式,以下数字有效:

0
0.0
1.00
etc.

问题是,我想扩展我的正则表达式,以便它忽略字符串的第一个索引处的验证“-”大小写-表示负数。

REGEX_VALID_DECIMAL_NUMBER = "[^-\\d+(\\.\\d+)*]";

我尝试通过添加^-来进行此操作,但这将允许到处出现“-”:

-0-
-0.0-
-1.00-
etc.

如何为除字符串的第一个索引之外的所有索引添加该验证?

1 个答案:

答案 0 :(得分:2)

您可能应该使用

^-?\d+(\.\d+)*$

^-?将确保否定式仅在开始时被接受。

Demo