Свойство groupValues

Свойство groupValues возвращает список строк, соответствующих группам захвата в результате сопоставления с регулярным выражением. Нулевой элемент списка содержит полное совпадение, а последующие элементы - содержимое захваченных групп.

Синтаксис

kotlinval groupValues: List<String>

Пример

Найдем группы в строке "John Doe, age 30" с помощью регулярного выражения:

kotlinval regex = Regex("(\\w+) (\\w+), age (\\d+)")
val matchResult = regex.find("John Doe, age 30")
val groups = matchResult?.groupValues

if (groups != null) {
  for (group in groups) {
    println(group)
  }
}

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

kotlinString "John Doe, age 30"
String "John"
String "Doe"
String "30"

Пример

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

kotlinval regex = Regex("(?<first>\\w+) (?<last>\\w+), age (?<age>\\d+)")
val matchResult = regex.find("Alice Smith, age 25")
val groups = matchResult?.groupValues

if (groups != null) {
  println(groups["first"])
  println(groups["last"])
  println(groups["age"])
}

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

kotlinString "Alice"
String "Smith"
Int 25

Пример

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

kotlinval regex = Regex("(\\d{3})-(\\d{2})")
val input = "123-45"
val matchResult = regex.find(input)

if (matchResult != null && matchResult.groupValues.size >= 3) {
  println("Area code: ${matchResult.groupValues[1]}")
  println("Group code: ${matchResult.groupValues[2]}")
} else {
  println("No match or not enough groups")
}

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

kotlinString "Area code: 123"
String "Group code: 45"

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

  • свойство groups,
    которое содержит объекты групп с дополнительной информацией
  • класс Regex,
    который представляет регулярное выражение в Kotlin