Java 正则校验金额,且小数点只能是2位

   //金额验证
   public static boolean isNumber(String str){ 
        Pattern pattern=Pattern.compile("^(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){2})?$"); // 判断小数点后2位的数字的正则表达式
        Matcher match=pattern.matcher(str);
        return match.matches(); 
    }

 

A文件数据: 1001分店20121231,元旦之际祝您新年快乐,身体健康,万事如意. 您共欠担保公司¥103,959.50元。请您尽快偿还欠款,以免扩大损失。 您的借款已逾期6天,欠款金额为1988.20元,逾期将影响信用记录,请即刻缴纳。 截止 2015年07月01日 您应还金额为:4128元。如有疑问,请联系王先生1101101010。 你好,截至到昨天夜里23:59,你欠款34532.32元,请您尽快偿还欠款,以免扩大损失。 你好,截至到昨天夜里23:59,你欠款:¥34532.32,请您尽快偿还欠款,以免扩大损失。 你好,截至到昨天夜里23:59,你欠款为34532.32元,请您尽快偿还欠款,以免扩大损失。 您好!截止2015年7月1日,您尚有逾期欠款45,987.89元未支付,请您登陆手机客户端进行查询。 本人之前的正则是这样的,因为数据中可能出现不止一个数字,因此需要将欠款金额的前后标志性词语一起匹配出来 String jq = "欠款金额为(.*?)元|欠还金额为(.*?)元|欠款:¥(.*?),|欠款总金额(.*?);|到期(.*?)元|到期本金(.*?)元|欠款合计金额为(.*?)元|欠款(.*?)元|累计欠款(.*?)。|Top50金额共(.*?)最长|欠款金额人民币:(.*?)元|共欠担保公司¥(.*?)元|尚有(.*?)元未支付|欠款为(.*?)元"; 但是在匹配的时候有些相互冲突, 欠款(.*?)元 欠款:¥(.*?), 欠款为(.*?)元 导致匹配出的结果部分为null,部分不符合,输出是,希望输出group(1)+"\t"+group(); 希望能够将(.*?)替换,用\d或者[0-9]执行匹配,但是水平有限,希望有前辈能指点。
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页