Интерфейс 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, 2023, 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/21/docs/api/java.base/java/util/regex/MatchResult.html