正则表达式匹配数字的技巧与实例

正则表达式匹配数字的技巧与实例

大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天,我们来探讨一下正则表达式匹配数字的技巧与实例。

1. 简单的数字匹配

最基本的匹配数字的正则表达式是 \d,它可以匹配任意一个数字(0-9)。

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import cn.juwatech.utils.RegexUtils;

public class SimpleDigitMatcher {
    public static void main(String[] args) {
        String input = "我的手机号是1234567890";
        Pattern pattern = Pattern.compile("\\d");
        Matcher matcher = pattern.matcher(input);
        
        while (matcher.find()) {
            System.out.println("Found digit: " + matcher.group());
        }
    }
}

2. 匹配多个数字

如果我们想要匹配多个数字,可以使用 \d+,它表示匹配一个或多个连续的数字。

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import cn.juwatech.utils.RegexUtils;

public class MultipleDigitMatcher {
    public static void main(String[] args) {
        String input = "我的邮政编码是100000,手机号是1234567890";
        Pattern pattern = Pattern.compile("\\d+");
        Matcher matcher = pattern.matcher(input);
        
        while (matcher.find()) {
            System.out.println("Found number: " + matcher.group());
        }
    }
}

3. 匹配特定长度的数字

如果我们想要匹配特定长度的数字,可以使用 \d{n} 这种形式,n 表示数字的长度。例如,匹配6位数字可以使用 \d{6}

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import cn.juwatech.utils.RegexUtils;

public class SpecificLengthDigitMatcher {
    public static void main(String[] args) {
        String input = "我的邮政编码是100000,电话号码是010-12345678";
        Pattern pattern = Pattern.compile("\\d{6}");
        Matcher matcher = pattern.matcher(input);
        
        while (matcher.find()) {
            System.out.println("Found 6-digit number: " + matcher.group());
        }
    }
}

4. 匹配范围内的数字

使用 [0-9] 可以匹配任意单个数字字符。如果要匹配一个范围内的数字,可以使用 [0-9]{min,max}。例如,匹配2到4位数字可以使用 [0-9]{2,4}

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import cn.juwatech.utils.RegexUtils;

public class RangeDigitMatcher {
    public static void main(String[] args) {
        String input = "我有123个苹果,45个橘子和6个梨";
        Pattern pattern = Pattern.compile("\\d{1,3}");
        Matcher matcher = pattern.matcher(input);
        
        while (matcher.find()) {
            System.out.println("Found number in range: " + matcher.group());
        }
    }
}

5. 匹配带小数点的数字

匹配带小数点的数字,可以使用 \d+\.\d+ 这种形式。例如,匹配浮点数。

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import cn.juwatech.utils.RegexUtils;

public class DecimalDigitMatcher {
    public static void main(String[] args) {
        String input = "圆周率大约是3.14159,黄金比例是1.618";
        Pattern pattern = Pattern.compile("\\d+\\.\\d+");
        Matcher matcher = pattern.matcher(input);
        
        while (matcher.find()) {
            System.out.println("Found decimal number: " + matcher.group());
        }
    }
}

6. 匹配负数

如果需要匹配负数,可以在正则表达式中加入负号 - 的支持。例如,匹配正负数可以使用 -?\d+

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import cn.juwatech.utils.RegexUtils;

public class NegativeDigitMatcher {
    public static void main(String[] args) {
        String input = "气温从-10度上升到20度";
        Pattern pattern = Pattern.compile("-?\\d+");
        Matcher matcher = pattern.matcher(input);
        
        while (matcher.find()) {
            System.out.println("Found number: " + matcher.group());
        }
    }
}

7. 结合Java正则表达式库

Java正则表达式库提供了丰富的正则表达式功能,我们可以充分利用这些功能来构建复杂的数字匹配逻辑。

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import cn.juwatech.utils.RegexUtils;

public class ComplexDigitMatcher {
    public static void main(String[] args) {
        String input = "温度变化范围是-5.5度到+10.25度";
        Pattern pattern = Pattern.compile("-?\\d+(\\.\\d+)?");
        Matcher matcher = pattern.matcher(input);
        
        while (matcher.find()) {
            System.out.println("Found complex number: " + matcher.group());
        }
    }
}

本文著作权归聚娃科技微赚淘客系统开发者团队,转载请注明出处!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值