fsk215 2011-08-06 15:19
浏览 214
已采纳

求java正则一枚

正数 不能大于100 小数点前只能有两位 可以有小数 也可不输入小数 小数最多为两位?
^[+]?(([1-9]\d{1,2}[.]?)|(0.))(\d{0,2})?$ 这个不对 哎.

  • 写回答

2条回答 默认 最新

  • wks1986 2011-08-06 15:35
    关注

    嗯,你那样就允许大于100的三位数了

    试试这个:
    我这里允许小数以0结尾,表示“近似值”的时候需要。如果不希望这样,改改也行。

    [code="java"]package regexptest;

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;

    public class RegexpTest2 {

    public static void main(String[] args) {
        Pattern p = Pattern.compile("^[+]?(([1-9][0-9]?|0)(\\.[0-9]{1,2})?|100(\\.0{1,2})?)$");
    
        for (String txt : new String[] { "3.14", "31.41", "+3.14", "3.1", "42",
                "3", "-3.14", "100", "100.00", "100.01", "300", "3.141", "03.14"}) {
            Matcher m = p.matcher(txt);
            if (m.find()) {
                String result = m.group(0);
                System.out.println(result);
            } else {
                System.out.println(txt + " does not match");
            }
        }
    }
    

    }
    [/code]
    输出:
    [quote]
    3.14
    31.41
    +3.14
    3.1
    42
    3
    -3.14 does not match
    100
    100.00
    100.01 does not match
    300 does not match
    3.141 does not match
    03.14 does not match
    [/quote]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑
  • ¥15 上传图片时提交的存储类型
  • ¥15 Ubuntu开机显示器只显示kernel,是没操作系统(相关搜索:显卡驱动)
  • ¥15 VB.NET如何绘制倾斜的椭圆
  • ¥15 arbotix没有/cmd_vel话题
  • ¥15 odoo17的分包重新供应路线如何设置?可从销售订单中实时直接触发采购订单或相关单据
  • ¥15 用C语言怎么判断字符串的输入是否符合设定?
  • ¥15 通信专业本科生论文选这两个哪个方向好研究呀
  • ¥50 我在一个购物网站的排队系统排队,这个排队到号后重新定向到目标网站进行购物,但是有技术牛通过技术方法直接跳过排队系统进入目标网址购物,有没有什么软件或者脚本可以用