Интерфейс 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/regex/MatchResult.html