对于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");
}
}
答案 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