regex  = "\\d+\\.\\d+";

解决方案 »

  1.   

    regex = "/^(\+|-)?(\d[^\.]+)(\.\d+)?$/";
      

  2.   

    如果不考虑科学计数法,试试这个:
    "\\d+(\\.\\d*)?|\\.\\d+"
      

  3.   

    http://www.huaxin99.com.cn/fqfblog/showlog.asp?cat_id=32&log_id=55517种正则表达式
      

  4.   

    首先感谢大家的热情帮忙.
    我测试以上朋友方法,碰到小数点不能输入.如考虑3.14,3.应该也是合法.有点棘手,
    考虑再用另一方法结合判断.部分源代码:import java.awt.*;
    import javax.swing.*;
    import javax.swing.text.*;
    import java.util.regex.*;public class ParseDecimal extends PlainDocument{    private String regExpress="[.0-9]";    private Pattern p=Pattern.compile(regExpress);
        private Matcher m=p.matcher("");    public void insertString(int offset,String str,AttributeSet as)throws BadLocationException
        {
    m.reset(str); if(str==null)
        {
    return;
        } if(m.matches())
        {
    super.insertString(offset,str,as);
        }
    else{
        Toolkit.getDefaultToolkit().beep();
        return;
    }
        }
    }