Matcher.group()
Возвращает текст найденного совпадения или его группы в скобках.
Доступно с: Java 1.4
Синтаксис
public String group(int group)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| group | int / String | Номер группы (0 — всё совпадение, 1 — первая скобка) или имя группы. Без аргумента — всё совпадение. |
Возвращаемое значение
StringТекст группы или null, если группа не участвовала в совпадении.
Примеры
Нумерованные группы — части даты:
void main() {
Matcher m = Pattern.compile("(\\d{4})-(\\d{2})-(\\d{2})").matcher("Due: 2025-03-14");
if (m.find()) {
IO.println(m.group());
IO.println(m.group(1));
IO.println(m.group(2) + "/" + m.group(3));
}
}Результат:
2025-03-14
2025
03/14Именованные группы (?<name>...) читаются понятнее:
void main() {
Pattern p = Pattern.compile("(?<key>\\w+)=(?<value>\\w+)");
Matcher m = p.matcher("host=localhost port=8080");
while (m.find()) {
IO.println(m.group("key") + " -> " + m.group("value"));
}
}Результат:
host -> localhost
port -> 8080Примечания
group() можно вызывать только после успешного find() или matches(), иначе будет IllegalStateException: No match found. Группы нумеруются по открывающим скобкам слева направо. Скобки, которые нужны только для группировки, без захвата, пишут как (?:...).
См. также
- Matcher.find() — Ищет следующее совпадение шаблона в любом месте строки.
- Matcher.matches() — Проверяет, соответствует ли шаблону вся строка целиком.
- String.replaceAll() — Заменяет все совпадения регулярного выражения.
В учебнике
- Регулярные выражения — Регулярные выражения в Java: matches, replaceAll, split по шаблону, классы Pattern и Matcher, группы и экранирование обратной косой черты.