📅  最后修改于: 2023-12-03 15:31:54.050000             🧑  作者: Mango
Java中的Matcher类是用来检索和操作正则表达式的工具,其中包含了start(int)方法用于返回匹配到的子串的起始位置。
Matcher类中的start(int)方法定义如下:
public int start(int group)
该方法返回给定组(group)的子串的起始位置。如果该组没有匹配到,则返回-1。如果组匹配到了空字符串,则返回匹配到空字符串的位置。
以下是一个示例代码,它会检测一个字符串中是否存在Java关键字,如果存在则输出该关键字在字符串中的位置。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class MatcherExample {
public static void main(String[] args) {
String input = "Java是一种面向对象的编程语言,它是一种高级编程语言,Java关键字包括:abstract、assert、boolean、break、byte、case、catch...";
// 正则表达式匹配Java关键字
Pattern pattern = Pattern.compile("\\b[a-zA-Z]+\\b");
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
String keyword = matcher.group();
int startPos = matcher.start();
System.out.println("匹配到关键字:" + keyword + ",起始位置:" + startPos);
}
}
}
输出结果:
匹配到关键字:Java,起始位置:0
匹配到关键字:是,起始位置:4
匹配到关键字:一种,起始位置:5
匹配到关键字:面向对象,起始位置:8
匹配到关键字:的,起始位置:13
匹配到关键字:编程语言,起始位置:14
匹配到关键字:它,起始位置:19
匹配到关键字:是,起始位置:20
匹配到关键字:一种,起始位置:21
匹配到关键字:高级编程语言,起始位置:24
匹配到关键字:Java,起始位置:31
匹配到关键字:关键字,起始位置:35
匹配到关键字:包括,起始位置:40
匹配到关键字:abstract,起始位置:41
匹配到关键字:assert,起始位置:50
匹配到关键字:boolean,起始位置:57
匹配到关键字:break,起始位置:65
匹配到关键字:byte,起始位置:71
匹配到关键字:case,起始位置:76
匹配到关键字:catch,起始位置:81