java 中如何用正则表达式匹配到相应的数字
时间: 2024-03-03 22:51:55 浏览: 16
在Java中,可以使用正则表达式匹配到相应的数字,具体方法如下:
1. 使用Pattern和Matcher类
首先,需要使用Pattern类将正则表达式编译成一个模式,然后使用Matcher类在待匹配的字符串中查找符合模式的子串。例如,以下代码演示了如何使用Pattern和Matcher类匹配一个字符串中的数字:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexDemo {
public static void main(String[] args) {
String str = "abc123def456";
String pattern = "\\d+"; // 匹配数字的正则表达式
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(str);
while (m.find()) {
System.out.println(m.group()); // 输出匹配到的数字
}
}
}
```
在这个例子中,正则表达式"\\d+"表示匹配一个或多个数字。使用Pattern.compile方法将该正则表达式编译成一个模式,然后使用Matcher类的find方法在字符串中查找符合模式的子串。在这个示例中,输出结果为:
```
123
456
```
2. 使用String类的split方法
另一种方法是使用String类的split方法,将字符串按照正则表达式匹配的模式拆分成一个字符串数组,然后遍历数组找到其中的数字。例如,以下代码演示了如何使用split方法匹配一个字符串中的数字:
```java
public class RegexDemo {
public static void main(String[] args) {
String str = "abc123def456";
String[] arr = str.split("\\D+"); // 按照非数字字符拆分字符串
for (String s : arr) {
if (!s.isEmpty()) {
System.out.println(s); // 输出匹配到的数字
}
}
}
}
```
在这个例子中,使用split方法将字符串按照非数字字符拆分成一个字符串数组,然后遍历数组找到其中的数字。输出结果与前一个示例相同:
```
123
456
```