НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
529 of 1310 menu

Класс MatchGroup

Класс MatchGroup представляет собой часть строки, которая соответствует определённой группе в регулярном выражении. Каждый объект содержит значение найденной подстроки и диапазон её позиций в исходной строке.

Импорт

import kotlin.text.MatchGroup

Синтаксис

class MatchGroup : Comparable<MatchGroup> { val value: String val range: IntRange }

Свойства

value: String - значение найденной подстроки.

range: IntRange - диапазон индексов (начальный и конечный) найденной подстроки в исходной строке.

Пример

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

val pattern = Regex("(\\d+)-(\\w+)") val input = "123-abcde" val matchResult = pattern.find(input) if (matchResult != null) { val groups = matchResult.groups val firstGroup: MatchGroup? = groups[1] val secondGroup: MatchGroup? = groups[2] println("First group value: " + firstGroup?.value) println("First group range: " + firstGroup?.range) println("Second group value: " + secondGroup?.value) println("Second group range: " + secondGroup?.range) }

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

First group value: 123 First group range: 0..2 Second group value: abcde Second group range: 4..8

Пример

Получим значение и диапазон всей найденной строки (группа 0):

val pattern = Regex("\\d+-\\w+") val input = "123-abcde" val matchResult = pattern.find(input) if (matchResult != null) { val wholeMatch: MatchGroup? = matchResult.groups[0] println("Whole match value: " + wholeMatch?.value) println("Whole match range: " + wholeMatch?.range) }

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

Whole match value: 123-abcde Whole match range: 0..8

Пример

Использование свойства value для получения текста группы:

val pattern = Regex("(\\d{3})-(\\d{2})") val input = "Phone: 123-45" val matchResult = pattern.find(input) if (matchResult != null) { val codeGroup = matchResult.groups[1] val numberGroup = matchResult.groups[2] println("Code: " + codeGroup?.value) println("Number: " + numberGroup?.value) }

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

Code: 123 Number: 45

Пример

Использование свойства range для получения позиций группы в строке:

val pattern = Regex("(test)") val input = "This is test string" val matchResult = pattern.find(input) if (matchResult != null) { val group = matchResult.groups[1] val range = group?.range println("Group starts at: " + range?.start) println("Group ends at: " + range?.endInclusive) }

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

Group starts at: 8 Group ends at: 11

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

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить