一、Matcher.lookingAt()是Java正则表达式工具包中用于部分匹配的方法,其特点如下:
匹配规则
仅检查目标字符串的起始部分是否与正则表达式匹配,不要求匹配整个字符串。
返回值
返回boolean类型:匹配成功返回true,否则返回false。
与其他方法的对比
matches():要求整个字符串完全匹配正则表达式。
find():在字符串任意位置查找匹配项。
lookingAt():仅检查字符串前缀是否匹配。
典型应用场景
boolean result = matcher.lookingAt();
适用于验证字符串是否以特定模式开头,例如检查URL协议或文件路径前缀。
(注:需先通过Pattern.matcher()创建Matcher对象加粗样式)
二、matcher.group()是Java正则表达式工具中用于获取匹配结果的核心方法,主要功能如下:
基础功能
group():返回整个正则表达式匹配的完整字符串。
group(int group):返回指定捕获组匹配的子串,组号从1开始(group(0)等价于group())
捕获组规则
正则表达式中的()定义捕获组,例如"(\d+)([a-z]+)"包含两个组。
groupCount()可获取总捕获组数量(不包含group(0)。
使用示例
提取字符串中的字母和数字组合:
Matcher m = Pattern.compile("([a-z]+)(\\d+)").matcher("java123");
if (m.find()) {
System.out.println(m.group(0)); // 输出 "java123"
System.out.println(m.group(1)); // 输出 "java"
System.out.println(m.group(2)); // 输出 "123"
}
(注:需先调用find()或matches()进行匹配)
三、matcher.group()是Java正则表达式匹配后提取结果的核心方法,其使用要点如下:
基础用法
group()或group(0):返回整个正则表达式匹配的完整字符串。
group(n):返回第n个捕获组匹配的子串(组号从1开始
捕获组规则
正则表达式中的()定义捕获组,例如"(\d+)([a-z]+)"包含两个组
groupCount()可获取总捕获组数量(不含group(0))
典型代码流程
提取时间字符串中的时分信息:
String str = "时间段:12:00-00:00";
Pattern pattern = Pattern.compile("(\\d{2}):(\\d{2})-(\\d{2}):(\\d{2})");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
System.out.println(matcher.group(1)); // 输出第一个小时"12"
System.out.println(matcher.group(3)); // 输出第二个小时"00"
}
注意事项
未匹配成功时调用会抛出IllegalStateException
组号超出范围会抛出IndexOutOfBoundsException