zoukankan      html  css  js  c++  java
  • 【总结】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());
        }
    }
  • 相关阅读:
    快速幂模板
    部分有关素数的题
    POJ 3624 Charm Bracelet (01背包)
    51Nod 1085 背包问题 (01背包)
    POJ 1789 Truck History (Kruskal 最小生成树)
    HDU 1996 汉诺塔VI
    HDU 2511 汉诺塔X
    HDU 2175 汉诺塔IX (递推)
    HDU 2077 汉诺塔IV (递推)
    HDU 2064 汉诺塔III (递推)
  • 原文地址:https://www.cnblogs.com/libin6505/p/10821298.html
Copyright © 2011-2022 走看看