正则表达式,仅允许数字(0-9),单个逗号(,)和多个点(。)。例如:10.000.100,00-有效10,000,100.00-无效

时间:2018-10-09 04:46:09

标签: java regex

我需要一个仅允许数字(0-9),单个逗号(,)和多个点(。)的正则表达式。

示例:10.000.100,00-有效         10,000,100.00-无效

我尝试过

  1. ^ [\ d。,] + $
  2. \ d +,?。*

但是它们都不起作用。他们两个都允许使用多个逗号。

需要此正则表达式的Java帮助。

2 个答案:

答案 0 :(得分:0)

使用这个:^\d+(?:\.\d+)*(?:,\d+)?$

它确保最多可以有一个逗号,并且这样的逗号必须以至少一位数字开头,然后是至少一位数字,但是逗号是可选的。

它还可以确保在逗号(如果存在)之前出现任何句点,并且没有前导结尾或连续逗号。

有效输入:

10.000.100,00
10.000.100
100

无效输入:

10,000,100.00
10.000.100,0.0
10.000.100,
10.000.
.10.000
10..100

有关演示,请参见regex101.com

答案 1 :(得分:0)

您可以使用以下表达式:-^\d+[\d.]*,?[\d.]*\d*$
它将允许以数字开头和结尾。多个(。)点和一个(,)逗号

链接:-https://regex101.com/r/hSjM2X/7