Именованные группы в Java
В Java группе можно дать имя прямо в шаблоне:
(?<имя>...). После успешного поиска
значение такой группы читают методом group
с именем:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String txt = "123 456";
Pattern pattern = Pattern.compile("(?<num1>\\d+)\\s(?<num2>\\d+)");
Matcher matcher = pattern.matcher(txt);
if (matcher.find()) {
System.out.println(matcher.group("num1"));
System.out.println(matcher.group("num2"));
}
}
}
Имена помогают не считать номера групп вручную. Это особенно удобно в длинных шаблонах, где после добавления новых скобок номера могут сдвинуться.
Дана строка со временем:
String txt = "12:59:59";
Положите часы, минуты и секунды в отдельные именованные группы и выведите их.
Дана строка:
String txt = "aaa bbb 123 456";
Положите подстроки "aaa" и "bbb"
в отдельные именованные группы и выведите их.