使用java中的正则表达式验证数字

时间:2017-12-26 07:53:21

标签: java regex string gxt

任何人都可以帮我验证数字,如:

  

1,478.25

仅允许.,等特殊字符

  

(@#$ _& - +()/ “':;!?~` |•√π÷׶= {}不允许)*

这是我到目前为止尝试的正则表达式:

/^[0-9]+([,][0-9]+)?$/

我们将不胜感激。 有效数字为123.45 1,234.5和0.01

3 个答案:

答案 0 :(得分:0)

这是您需要的正则表达式:^(\\d{1,3},)*(\\d{1,3})(.\\d{1,3})?$以及globalmultiline标记。

这应该是你的代码:

final String regex = "^(\\d{1,3},)*(\\d{1,3})(\\.\\d{1,3})?$";
final String string = "1,478.25\n"
     + "1,450\n"
     + "48.10\n"
     + "145.124.14";

final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);


while (matcher.find()) {
    System.out.println("Full match: " + matcher.group(0));
}

这是a live Demo

答案 1 :(得分:0)

请使用以下正则表达式验证带有一位小数和多个逗号的数值

      String num="1,335.25";

        String exp ="^[-+]?[\\d+([,]\\d+)]*\\.?[0-9]+$";

        if(num.matches(exp)){  
            System.out.println("valid number");
        }else{
            System.out.println("Not a valid number");
        }

请检查一下。

答案 2 :(得分:0)

我认为这个正则表达式是你需要的

^\d{1,}(,\d+)?\.\d+$