Метод results
Метод results класса Matcher возвращает
поток результатов совпадений в виде
Stream<MatchResult>. Параметров метод
не принимает. Поток содержит результаты для всех
совпадений, найденных при помощи данного матчера.
После вызова метода results матчер
сбрасывается в начало входной последовательности.
Каждый элемент потока представляет собой объект
MatchResult, из которого можно получить
совпавшую подстроку при помощи метода group,
а также начальную и конечную позиции совпадения
при помощи методов start и end.
Синтаксис
matcher.results()
Пример
Давайте найдем все числа в строке и выведем их на экран:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Stream;
public class Main
{
public static void main(String[] args)
{
String str = "abc 123 def 456 ghi 789";
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher(str);
Stream<String> res = matcher.results()
.map(MatchResult::group);
res.forEach(System.out::println);
}
}
Результат выполнения кода:
"123"
"456"
"789"
Пример
Давайте получим список подстрок, совпавших с шаблоном, и выведем его на экран:
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main
{
public static void main(String[] args)
{
String str = "abcde abcde abcde";
Pattern pattern = Pattern.compile("abc");
Matcher matcher = pattern.matcher(str);
List<String> res = matcher.results()
.map(MatchResult::group)
.toList();
System.out.println(res);
}
}
Результат выполнения кода:
[abc, abc, abc]
Смотрите также
-
класс
Matcher,
который выполняет поиск совпадений -
метод
find,
который ищет следующее совпадение -
метод
group,
который возвращает совпавшую подстроку -
интерфейс
MatchResult,
который хранит результат совпадения