Свойство groups
Свойство groups содержит группы захвата из результата сопоставления регулярного выражения.
Применяется к объекту MatchResult. Возвращает объект MatchGroupCollection,
содержащий все найденные группы. Нулевая группа содержит полное совпадение,
последующие группы содержат совпадения по подвыражениям в круглых скобках.
Импорт
import kotlin.text.MatchResult
import kotlin.text.MatchGroupCollection
Синтаксис
val MatchResult.groups: MatchGroupCollection
Пример
Найдем группы в строке по шаблону:
val 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}")
Результат выполнения кода:
Full match: John Smith
First group: John
Second group: Smith
Пример
Использование групп с цифрами:
val 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}")
Результат выполнения кода:
First number: 123
Second number: 456
Пример
Проверка наличия групп:
val regex = """(\d+)?""".toRegex()
val matchResult = regex.find("abc")
val groups = matchResult?.groups
println("Group 1 exists: ${groups?.get(1) != null}")
Результат выполнения кода:
Group 1 exists: false
Смотрите также
-
функцию
find,
для поиска первого совпадения с регулярным выражением -
функцию
findAll,
для поиска всех совпадений с регулярным выражением -
функцию
matchEntire,
для проверки полного соответствия строки регулярному выражению -
класс
Regex,
основной класс для работы с регулярными выражениями в Kotlin