• 【总结】java regex 正则表达式 提取数字和去除数字,过滤数字,提取价格


    转:

    复制代码
        @Test
        public void test33() {
            String phoneString = "哈哈,13888889999";
            // 提取数字
            // 1
            Pattern pattern = Pattern.compile("[^0-9]");
            Matcher matcher = pattern.matcher(phoneString);
            String all = matcher.replaceAll("");
            System.out.println("phone:" + all);
            // 2
            Pattern.compile("[^0-9]").matcher(phoneString).replaceAll("");
        }
    复制代码
    复制代码
    @Test
        public void test() {
            // 提取张三 去除数字
            String r_name3 = "张三 13599998888 000000";
            Pattern pattern = Pattern.compile("[\d]");
            Matcher matcher = pattern.matcher(r_name3);
            System.out.println(matcher.replaceAll("").trim());
        }
    复制代码

    需求:过滤除点号外的所有非数字:

            String abc = "价格:0.00元";
            Pattern compile = Pattern.compile("\d+\.\d+");
            Matcher matcher = compile.matcher(abc);
            matcher.find();
            String string = matcher.group();//提取匹配到的结果
            System.out.println(string);//0.00        

    需求:只要提取数字其它都不需要

    String abc = "手机:1319999999";    
    System.out.println(abc.replaceAll("\D", ""));//1319999999

     需求:提取价格出来

    复制代码
    package com.infomorrow.parser_datasource;
    
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    import org.junit.Test;
    
    public class test_money {
        @Test
        public void test(){
            //0
            //0.1
            //24.13
            String moneyString="1";
            Double extract_cost = extract_cost_dot(moneyString);
            System.out.println("extract_cost:"+extract_cost);
        }
        /**
         * 提取金额,规则为只提取数字和点号,必须有点号
         * 格式可以为0.0或者,11
         * @param cost
         * @return
         */
        public   Double extract_cost_dot(String cost) {
            Pattern compile = Pattern.compile("(\d+\.\d+)|(\d+)");
            Matcher matcher = compile.matcher(cost);
            matcher.find();
            return Double.valueOf(matcher.group());
        }
    }
  • 相关阅读:
    QT生成流水账号
    Qt实现端口扫描器
    Qtablevies获取内容
    Qt中暂停线程的执行
    Qt经典出错信息之undefined reference to `vtable for classname
    Qt中 QString 和int, char等的“相互”转换
    caffe实现自己的层
    获取minist数据并转换成lmdb
    命名空间下接类,比如common.cpp
    caffe这个c++工程的目录结构
  • 原文地址:https://www.cnblogs.com/libin6505/p/10821298.html
Copyright © 2020-2023  润新知