Класс MatchResult
Класс MatchResult представляет собой результат
успешного сопоставления шаблона регулярного выражения
с входной строкой. Объект этого класса возвращается
методами toMatchResult класса Matcher,
а также используется в лямбда-выражениях при работе
с потоками совпадений. Класс позволяет получить
информацию о количестве групп, их начальных и конечных
индексах, а также извлечь сами совпавшие подстроки.
Основные методы класса MatchResult включают:
group для получения текста совпадения,
start и end для определения позиций,
groupCount для подсчета групп.
Синтаксис
MatchResult result = matcher.toMatchResult();
Пример
Давайте создадим Matcher, выполним поиск и получим объект MatchResult для анализа найденного совпадения:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.MatchResult;
public class Main
{
public static void main(String[] args)
{
String str = "abcde";
Pattern pattern = Pattern.compile("(b)(c)");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
MatchResult res = matcher.toMatchResult();
System.out.println(res.group());
System.out.println(res.group(1));
System.out.println(res.group(2));
}
}
}
Результат выполнения кода:
"bc"
"b"
"c"
Пример
Давайте получим позиции найденного совпадения
с помощью методов start и end:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.MatchResult;
public class Main
{
public static void main(String[] args)
{
String str = "12345";
Pattern pattern = Pattern.compile("234");
Matcher matcher = pattern.matcher(str);
if (matcher.find()) {
MatchResult res = matcher.toMatchResult();
System.out.println("Start: " + res.start());
System.out.println("End: " + res.end());
System.out.println("Match: " + res.group());
}
}
}
Результат выполнения кода:
"Start: 1"
"End: 4"
"Match: 234"