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

Posted libin6505

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了总结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());
    }
}

 

以上是关于总结java regex 正则表达式 提取数字和去除数字,过滤数字,提取价格的主要内容,如果未能解决你的问题,请参考以下文章

Java 正则表达式 regex 提取字符

正则表达式 - 从字符串中提取第二个位置数字

正则表达式怎么匹配字符串中最后一串数字?

Java正则表达式介绍和使用规则(Pattern类Matcher类PatternSyntaxException类)

java正则表达式,要求字符串只能包含数字、英文大小写、以及“-”符号

Java正则表达式介绍和使用规则(Pattern类Matcher类PatternSyntaxException类)