2025年02月19日 Java正则匹配数字 极客笔记
在Java中,我们经常需要使用正则表达式来匹配字符串中的数字。数字的格式可能会有很多种,包括整数、小数、负数等等。本文将详细介绍在Java中如何通过正则表达式来匹配不同类型的数字。
首先,我们来看如何匹配整数。整数可以是正数也可以是负数,不包含小数点。我们可以使用以下正则表达式来匹配整数:
String regex = "-?\\d+";
在上面的正则表达式中,-?
表示可选的负号,\\d+
表示匹配一个或多个数字。下面是一个简单的示例代码:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class IntegersMatcher {
public static void main(String[] args) {
String input = "123 -456 789";
String regex = "-?\\d+";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
System.out.println("Matched Integer: " + matcher.group());
}
}
}
运行以上代码,输出如下结果:
Matched Integer: 123
Matched Integer: -456
Matched Integer: 789
接下来,我们来看如何匹配小数。小数可以是正数也可以是负数,需要包含小数点。我们可以使用以下正则表达式来匹配小数:
String regex = "-?\\d+\\.\\d+";
在上面的正则表达式中,-?
表示可选的负号,\\d+
表示匹配一个或多个数字,\\.
表示匹配小数点,\\d+
表示再次匹配一个或多个数字。下面是一个简单的示例代码:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DecimalsMatcher {
public static void main(String[] args) {
String input = "12.34 -56.78 90.1";
String regex = "-?\\d+\\.\\d+";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
System.out.println("Matched Decimal: " + matcher.group());
}
}
}
运行以上代码,输出如下结果:
Matched Decimal: 12.34
Matched Decimal: -56.78
Matched Decimal: 90.1
有些数字可能以科学计数法的形式表示,即包含指数部分。我们可以使用以下正则表达式来匹配科学计数法数字:
String regex = "-?\\d+(\\.\\d+)?((e|E)-?\\d+)?";
在上面的正则表达式中,-?
表示可选的负号,\\d+
表示匹配一个或多个数字,(\\.\\d+)?
表示小数部分为可选的,((e|E)-?\\d+)?
表示指数部分为可选的。下面是一个简单的示例代码:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ScientificNotationMatcher {
public static void main(String[] args) {
String input = "1.23e4 -5.67E-8 9e10";
String regex = "-?\\d+(\\.\\d+)?((e|E)-?\\d+)?";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
System.out.println("Matched Scientific Notation: " + matcher.group());
}
}
}
运行以上代码,输出如下结果:
Matched Scientific Notation: 1.23e4
Matched Scientific Notation: -5.67E-8
Matched Scientific Notation: 9e10
通过本文的介绍,我们学习了如何在Java中使用正则表达式来匹配不同类型的数字。根据不同的需求,我们可以编写不同的正则表达式来实现精确的匹配。在实际开发中,正则表达式是一种强大的工具,能够帮助我们快速准确地处理字符串操作。
本文链接:http://so.lmcjl.com/news/23449/