Интерфейс MatchResult
- Все известные реализующие классы:
Matcher
public interface MatchResult
Этот интерфейс содержит методы запросов, используемые для определения результатов сопоставления с регулярным выражением. Границы совпадения, группы и границы групп можно просматривать, но нельзя изменять с помощью MatchResult.
- Примечание по реализации:
- Поддержка именованных групп реализована методами по умолчанию
start(String),end(String)иgroup(String). Все они используют карту, возвращаемую методомnamedGroups(), реализация которого по умолчанию просто выбрасывает исключениеUnsupportedOperationException. Поэтому для работы этих методов достаточно переопределитьnamedGroups(). Однако для повышения производительности или по другим причинам может быть предпочтительнее переопределить их напрямую. - С момента версии:
- 1.5
- См. также:
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
end() |
Возвращает смещение после последнего совпавшего символа. |
int |
end |
Возвращает смещение после последнего символа подпоследовательности, захваченной указанной группой при этом сопоставлении. |
default int |
end |
Возвращает смещение после последнего символа подпоследовательности, захваченной указанной именованной захватывающей группой во время предыдущей операции сопоставления. |
String |
group() |
Возвращает подпоследовательность входных данных, совпавшую при предыдущем сопоставлении. |
String |
group |
Возвращает подпоследовательность входных данных, захваченную указанной группой во время предыдущей операции сопоставления. |
default String |
group |
Возвращает подпоследовательность входных данных, захваченную указанной именованной захватывающей группой во время предыдущей операции сопоставления. |
int |
groupCount() |
Возвращает количество захватывающих групп в шаблоне этого результата сопоставления. |
default boolean |
hasMatch() |
Возвращает, содержит ли this действительное совпадение, полученное в результате предыдущей операции сопоставления или поиска. |
default Map |
namedGroups() |
Возвращает неизменяемую карту имен захватывающих групп и номеров групп. |
int |
start() |
Возвращает начальный индекс совпадения. |
int |
start |
Возвращает начальный индекс подпоследовательности, захваченной указанной группой при этом сопоставлении. |
default int |
start |
Возвращает начальный индекс подпоследовательности, захваченной указанной именованной захватывающей группой во время предыдущей операции сопоставления. |
Подробное описание методов
start
int start()
- Возвращает:
- Индекс первого совпавшего символа
- Выбрасывает:
-
IllegalStateException— если попытка сопоставления ещё не предпринималась или предыдущая операция сопоставления завершилась неудачей
start
int start(int group)
Захватывающие группы индексируются слева направо, начиная с единицы. Группа с индексом ноль обозначает весь шаблон, поэтому выражение m.start(0) эквивалентно выражению m.start().
- Параметры:
-
group— индекс захватывающей группы в шаблоне этого сопоставителя - Возвращает:
- Индекс первого символа, захваченного группой, или
-1, если сопоставление завершилось успешно, но сама группа ничего не совпоставила - Выбрасывает:
-
IllegalStateException— если попытка сопоставления ещё не предпринималась или предыдущая операция сопоставления завершилась неудачей -
IndexOutOfBoundsException— если в шаблоне нет захватывающей группы с указанным индексом
start
default int start(String name)
- Требования к реализации:
- Реализация этого метода по умолчанию вызывает
namedGroups(), чтобы получить номер группы из аргументаname, и использует его в качестве аргумента при вызовеstart(int). - Параметры:
-
name— имя именованной захватывающей группы в шаблоне этого сопоставителя - Возвращает:
- Индекс первого символа, захваченного группой, или
-1, если сопоставление завершилось успешно, но сама группа ничего не совпоставила - Выбрасывает:
-
IllegalStateException— если попытка сопоставления ещё не предпринималась или предыдущая операция сопоставления завершилась неудачей -
IllegalArgumentException— если в шаблоне нет захватывающей группы с указанным именем - С момента версии:
- 20
end
int end()
- Возвращает:
- Смещение после последнего совпавшего символа
- Выбрасывает:
-
IllegalStateException— если попытка сопоставления ещё не предпринималась или предыдущая операция сопоставления завершилась неудачей
end
int end(int group)
Захватывающие группы индексируются слева направо, начиная с единицы. Группа с индексом ноль обозначает весь шаблон, поэтому выражение m.end(0) эквивалентно выражению m.end().
- Параметры:
-
group— индекс захватывающей группы в шаблоне этого сопоставителя - Возвращает:
- Смещение после последнего символа, захваченного группой, или
-1, если сопоставление завершилось успешно, но сама группа ничего не совпоставила - Выбрасывает:
-
IllegalStateException— если попытка сопоставления ещё не предпринималась или предыдущая операция сопоставления завершилась неудачей -
IndexOutOfBoundsException— если в шаблоне нет захватывающей группы с указанным индексом
end
default int end(String name)
- Требования к реализации:
- Реализация этого метода по умолчанию вызывает
namedGroups(), чтобы получить номер группы из аргументаname, и использует его в качестве аргумента при вызовеend(int). - Параметры:
-
name— имя именованной захватывающей группы в шаблоне этого сопоставителя - Возвращает:
- Смещение после последнего символа, захваченного группой, или
-1, если сопоставление завершилось успешно, но сама группа ничего не совпоставила - Выбрасывает:
-
IllegalStateException— если попытка сопоставления ещё не предпринималась или предыдущая операция сопоставления завершилась неудачей -
IllegalArgumentException— если в шаблоне нет захватывающей группы с указанным именем - С момента версии:
- 20
group
String group()
Для сопоставителя m с входной последовательностью s выражения m.group() и s.substring(m.start(), m.end()) эквивалентны.
Обратите внимание, что некоторые шаблоны, например a*, совпадают с пустой строкой. Этот метод возвращает пустую строку, если шаблон успешно сопоставляется с пустой строкой во входных данных.
- Возвращает:
- Возможно, пустая подпоследовательность, совпавшая при предыдущем сопоставлении, в виде строки
- Выбрасывает:
-
IllegalStateException— если попытка сопоставления ещё не предпринималась или предыдущая операция сопоставления завершилась неудачей
group
String group(int group)
Для сопоставителя m, входной последовательности s и индекса группы g выражения m.group(g) и s.substring(m.start(g
), m.end(g)) эквивалентны.
Захватывающие группы индексируются слева направо, начиная с единицы. Группа с индексом ноль обозначает весь шаблон, поэтому выражение m.group(0) эквивалентно выражению m.group().
Если сопоставление завершилось успешно, но указанная группа не совпала ни с одной частью входной последовательности, возвращается null. Обратите внимание, что некоторые группы, например (a*), совпадают с пустой строкой. Этот метод возвращает пустую строку, если такая группа успешно сопоставляется с пустой строкой во входных данных.
- Параметры:
-
group— индекс захватывающей группы в шаблоне этого сопоставителя - Возвращает:
- Возможно, пустая подпоследовательность, захваченная группой во время предыдущего сопоставления, или
null, если группа не совпала ни с одной частью входных данных - Выбрасывает:
-
IllegalStateException— если попытка сопоставления ещё не предпринималась или предыдущая операция сопоставления завершилась неудачей -
IndexOutOfBoundsException— если в шаблоне нет захватывающей группы с указанным индексом
group
default String group(String name)
Если сопоставление завершилось успешно, но указанная группа не совпала ни с одной частью входной последовательности, возвращается null. Обратите внимание, что некоторые группы, например (a*), совпадают с пустой строкой. Этот метод возвращает пустую строку, если такая группа успешно сопоставляется с пустой строкой во входных данных.
- Требования к реализации:
- Реализация этого метода по умолчанию вызывает
namedGroups(), чтобы получить номер группы из аргументаname, и использует его в качестве аргумента при вызовеgroup(int). - Параметры:
-
name— имя именованной захватывающей группы в шаблоне этого сопоставителя - Возвращает:
- Возможно, пустая подпоследовательность, захваченная именованной группой во время предыдущего сопоставления, или
null, если группа не совпала ни с одной частью входных данных - Выбрасывает:
-
IllegalStateException— если попытка сопоставления ещё не предпринималась или предыдущая операция сопоставления завершилась неудачей -
IllegalArgumentException— если в шаблоне нет захватывающей группы с указанным именем - С момента версии:
- 20
groupCount
int groupCount()
По соглашению группа с индексом ноль обозначает весь шаблон. Она не включается в это количество.
Любое неотрицательное целое число, не превышающее значение, возвращаемое этим методом, гарантированно является допустимым индексом группы для этого сопоставителя.
- Возвращает:
- Количество захватывающих групп в шаблоне этого сопоставителя
namedGroups
default Map<String,Integer> namedGroups()
- Примечание API:
- Этот метод должен быть переопределён реализацией, поддерживающей именованные группы.
- Требования к реализации:
- Реализация этого метода по умолчанию всегда выбрасывает исключение
UnsupportedOperationException - Возвращает:
- неизменяемую карту имен захватывающих групп и номеров групп
- Выбрасывает:
-
UnsupportedOperationException— если реализация не поддерживает именованные группы. - С момента версии:
- 20
hasMatch
default boolean hasMatch()
this действительное совпадение, полученное в результате предыдущей операции сопоставления или поиска.- Требования к реализации:
- Реализация этого метода по умолчанию всегда выбрасывает исключение
UnsupportedOperationException - Возвращает:
- содержит ли
thisдействительное совпадение - Выбрасывает:
-
UnsupportedOperationException— если реализация не может сообщить, имеется ли совпадение - С момента версии:
- 20
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/regex/MatchResult.html