为什么正则表达式不起作用?

时间:2014-08-20 01:01:13

标签: java regex

对于java模式匹配,我有这个正则表达式 ^ [ - +]?\ d +(\。\ d +)?$ ,我不知道为什么不起作用。 我需要接受像 [+ - ] 123和[+ - ] 123.123 这样的小数点,但它接受[+ - ] 123.123.123 来。我做得不好?

这是检查我的号码是否正确的方法

 public void addPoint(){

    String pattern = "^[-+]?\\d+(\\.\\d+)?$";
    if(display.getText().matches(pattern)){
        display.setText(display.getText()+".");
    }else{
        JOptionPane.showMessageDialog(null, "Error");
    }

 }

1 个答案:

答案 0 :(得分:0)

String pattern = "^([-+])?\\d+(\\.\\d+)?$";
    String s1 = "+123";
    String s2 = "-123.123";
    String s3 = "-123.123.123";
    System.out.println(s1.matches(pattern));//true
    System.out.println(s2.matches(pattern));//true
    System.out.println(s3.matches(pattern));//false
    //the regex works,there is something wrong in other place