正则表达式匹配数字的技巧与实例
大家好,我是微赚淘客系统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());
}
}
}
本文著作权归聚娃科技微赚淘客系统开发者团队,转载请注明出处!