【总结】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()); } }

 

转载于:https://www.cnblogs.com/libin6505/p/10821298.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值