📅  最后修改于: 2023-12-03 15:31:53.990000             🧑  作者: Mango
在Java中,Matcher
类是用于匹配文本的一个工具类。其中,end()
方法用于返回当前匹配的子串的结束位置。
public int end()
假设我们有一个字符串 "hello world"
,我们想要找到其中所有以小写字母开头的单词,可以使用以下代码:
String regex = "\\b[a-z]+\\b";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher("hello world");
while (matcher.find()) {
String word = matcher.group();
int start = matcher.start();
int end = matcher.end();
System.out.println(String.format("Found '%s' at position %d-%d", word, start, end));
}
在这个例子中,我们首先定义了一个正则表达式 \\b[a-z]+\\b
,用于匹配小写字母开头的单词。然后,我们使用Pattern
类将正则表达式编译为一个模式。
接着,我们使用Matcher
类的matcher()
方法将要匹配的字符串传入,生成一个匹配器对象 matcher
。我们通过循环查找出所有匹配的子串,并分别记录子串的值、开始位置和结束位置。
在每次匹配成功后,我们调用matcher.end()
方法获取当前匹配子串的结束位置,并将结果打印出来。运行该代码,输出如下:
Found 'hello' at position 0-5
Found 'world' at position 6-11
这里可以看到,end()
方法返回的是匹配子串的结束位置。注意,这个位置是下一个字符的位置,而不是当前匹配字符所在的位置。因此,我们可以使用 substring(start, end)
来获取匹配子串的值。
end()
方法主要用于获取匹配子串的结束位置。在使用时需要注意返回的是下一个字符的位置,而不是当前匹配字符所在的位置。在处理匹配子串时,可以使用 substring(start, end)
方法来获取子串的值。