Свойство groups

Свойство groups содержит группы захвата из результата сопоставления регулярного выражения. Применяется к объекту MatchResult. Возвращает объект MatchGroupCollection, содержащий все найденные группы. Нулевая группа содержит полное совпадение, последующие группы содержат совпадения по подвыражениям в круглых скобках.

Импорт

kotlinimport kotlin.text.MatchResult
import kotlin.text.MatchGroupCollection

Синтаксис

kotlinval MatchResult.groups: MatchGroupCollection

Пример

Найдем группы в строке по шаблону:

kotlinval regex = """(\w+)\s(\w+)""".toRegex()
val matchResult = regex.find("John Smith")
val groups = matchResult?.groups

println("Full match: ${groups?.get(0)?.value}")
println("First group: ${groups?.get(1)?.value}")
println("Second group: ${groups?.get(2)?.value}")

Результат выполнения кода:

kotlinFull match: John Smith
First group: John
Second group: Smith

Пример

Использование групп с цифрами:

kotlinval regex = """(\d+)-(\d+)""".toRegex()
val matchResult = regex.find("123-456")
val groups = matchResult?.groups

println("First number: ${groups?.get(1)?.value}")
println("Second number: ${groups?.get(2)?.value}")

Результат выполнения кода:

kotlinFirst number: 123
Second number: 456

Пример

Проверка наличия групп:

kotlinval regex = """(\d+)?""".toRegex()
val matchResult = regex.find("abc")
val groups = matchResult?.groups

println("Group 1 exists: ${groups?.get(1) != null}")

Результат выполнения кода:

kotlinGroup 1 exists: false

Смотрите также

  • функцию find,
    для поиска первого совпадения с регулярным выражением
  • функцию findAll,
    для поиска всех совпадений с регулярным выражением
  • функцию matchEntire,
    для проверки полного соответствия строки регулярному выражению
  • класс Regex,
    основной класс для работы с регулярными выражениями в Kotlin