Именованные группы при переборе в Java
В цикле с find именованные группы читают
так же, как и при первом совпадении. Имя
задают в шаблоне, а значение получают через
group("имя"):
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String txt = "aaaa 123 bbbb 456";
Pattern pattern = Pattern.compile("(?<d1>\\d)(?<d2>\\d)");
Matcher matcher = pattern.matcher(txt);
while (matcher.find()) {
System.out.println(
matcher.group() + " "
+ matcher.group("d1") + " "
+ matcher.group("d2")
);
}
}
}
На каждой итерации group() возвращает
текущее совпадение целиком, а именованные
группы - его части.
Дана строка:
String txt = "456 aaa 123 b2bb 987";
Найдите все двухсимвольные фрагменты из цифр, разложите их по двум именованным группам и выведите результат в консоль.