正则表达式只允许一系列双打

时间:2017-08-03 16:37:42

标签: java regex

我有TextField,其输入应限制在1.00和5.00之间。 我尝试了"\\d+\\.\\d+"[0-9]{1,5}(\.[0-9]+)?,但两者都没有效果,这是可以理解的。

感谢。

4 个答案:

答案 0 :(得分:3)

正如评论中所述,有一些输入字段类型可以帮您检查。但是,回答你的文字问题,可以使用:

^([1-4]\.[0-9]{2})|(5\.00)$

您需要特别处理该范围的5.00端。

答案 1 :(得分:2)

如果您需要精确的2位精度加倍,可以使用

^[1-5]{1}\.[0-9]{2}$

答案 2 :(得分:1)

^[1-4](\\.\\d{1,2})?|5(\\.0{1,2})?$

答案 3 :(得分:0)

这将验证1.00到5.00到两位小数。

^([1-4]\\.[0-9]{2})$|(5\\.00)$

实施例

          // String to be scanned to find the pattern.
          String line = "1.00";
          String pattern = "^([1-4]\\.[0-9]{2})$|(5\\.00)$";

          // Create a Pattern object
          Pattern r = Pattern.compile(pattern);

          // Now create matcher object.
          Matcher m = r.matcher(line);
          if (m.find( )) {
             System.out.println("Found value: " + m.group(0) );
          }else {
             System.out.println("NO MATCH: " + line);
          }

          line = "5.0000";
          m = r.matcher(line);
          if (m.find( )) {
             System.out.println("Found value: " + m.group(0) );
          }else {
             System.out.println("NO MATCH: " + line);
          }