Список совпадений в регулярках Java
В Java у Matcher есть метод results.
Он возвращает поток объектов MatchResult,
поэтому все найденные фрагменты можно сразу
собрать в список:
import java.util.List;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String txt = "12 43 56 ab";
Pattern pattern = Pattern.compile("\\d+");
List<String> res = pattern.matcher(txt)
.results()
.map(match -> match.group())
.toList();
System.out.println(res);
}
}
Такой способ удобен, когда нужен именно итоговый
список совпадений. Если во время поиска нужно
сразу выполнять действие для каждого найденного
фрагмента, чаще используют цикл с find.
Дана строка:
String txt = "123 aaa 456 bbb 789";
Выведите список подстрок из цифр.
Дана строка:
String txt = "abc 123 def 456 789";
Выведите список подстрок из букв.