正则Pattern与Matcher

本文介绍了Java中正则表达式的使用,重点讲解了`Pattern`和`Matcher`类的功能。`Pattern`用于编译正则表达式,而`Matcher`则对字符串进行匹配操作,如`matches()`、`find()`、`lookingAt()`等方法。通过示例代码展示了如何匹配数字串,并获取匹配到的子串及其位置。同时,还提及了`Matcher`的`group()`方法和分组概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 java.util.regex 包中
Pattern类: 在Java中,正则表达式的载体。使用正则表达式进行字符串的校验、切割、替
换,都需要使用到这个类。
Matcher类: 在Java中, 对一个正则校验的结果描述。
fifind()
从字符串的第0位开始查询, 查询是否有满足指定规则的子部分。
当再次调用fifind()的时候, 从上次查询到的位置开始, 继续向后查询。
无论是 matches, 还是fifind, 还是lookingAt, 在字符串中进行校验、匹配的时候, 是有一
个浮标存在的。
public class Regex2 {
public static void main(String[] args) {
// 1. 准备一个数据源
String data = "abc123hello world456lily789lucy012uncle111wang";
// 2. 将一个字符串变异成正则对象
Pattern pattern = Pattern.compile("\\d+");
// 3. 使用一个正则和一个字符串进行校验
Matcher matcher = pattern.matcher(data);
// 3.1. 获取整体校验的结果
// 匹配逻辑:
// 从第0个字符开始,判断每一个字符是否否则当前的正则。
// 当找到了有不符合当前正则部分的时候,就会停止继续向后查找,直接返
回false
System.out.println(matcher.matches());
// 3.2. find()
while (matcher.find()) {
System.out.print("匹配到了字符串: " + matcher.group() + ", ");
System.out.println("下标范围: [" + matcher.start() + ", " +
matcher.end() + ")");
//
start()
获取当前匹配到的部分首字符的下标。
end()
获取当前匹配到的部分尾字符的下标 + 1。
lookingAt()
查找字符串中, 是否有满足指定规则的子部分。 每次查询
都从第0位开始。
matches()
得到本次整体匹配的结果。 一个字符串是否和一个正则表
达式是整体匹配的。
fifind()
查找字符串中, 是否有满足指定规则的子部分。
fifind(int
start)
查找字符串中, 从指定的下标位开始往后, 有没有满足指
定规则的子部分
group()
获取当前匹配到的字符串。
}
// 3.3. lookingAt()
System.out.println(matcher.lookingAt() + ", " + matcher.group() +
", [" + matcher.start() + ", " + matcher.end() + ")");
}
}
 
public class Regex3 {
public static void main(String[] args) {
//
Pattern pattern = Pattern.compile("(1\\d{2})(\\d{4})(\\d{4})");//正则赋给pattern
Matcher matcher = pattern.matcher("17788889999");//用pattern的正则来判断后面的字符串
// 获取分组的数量
System.out.println(matcher.groupCount());
// 获取每一个分组的值之前,先进行整体的匹配
boolean ret = matcher.matches();
// 获取到某一个分组的内容
System.out.println(matcher.group(1));
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值