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

Класс MatchResult

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

Импорт

import kotlin.text.MatchResult

Синтаксис

class MatchResult { val value: String val range: IntRange val groups: MatchGroupCollection val groupValues: List<String> fun next(): MatchResult? fun destructured(): Destructured }

Пример

Получим результат сопоставления и выведем основную информацию:

val regex = Regex("(\\d+)-(\\w+)") val input = "123-abc" val matchResult = regex.find(input) if (matchResult != null) { println("Found: ${matchResult.value}") println("Position: ${matchResult.range}") println("Groups: ${matchResult.groupValues}") }

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

Found: 123-abc Position: 0..6 Groups: [123-abc, 123, abc]

Пример

Получим доступ к группам захвата:

val regex = Regex("(\\d+)-(\\w+)") val input = "123-abc" val matchResult = regex.find(input) if (matchResult != null) { val wholeMatch = matchResult.groups[0]?.value val firstGroup = matchResult.groups[1]?.value val secondGroup = matchResult.groups[2]?.value println("Whole: $wholeMatch") println("First group: $firstGroup") println("Second group: $secondGroup") }

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

Whole: 123-abc First group: 123 Second group: abc

Пример

Используем деструктуризацию для получения групп:

val regex = Regex("(\\d+)-(\\w+)") val input = "123-abc" val matchResult = regex.find(input) if (matchResult != null) { val (num, text) = matchResult.destructured() println("Number: $num") println("Text: $text") }

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

Number: 123 Text: abc

Пример

Найдем все совпадения в строке используя метод next:

val regex = Regex("\\d+") val input = "a1 b22 c333 d4444" var matchResult = regex.find(input) while (matchResult != null) { println("Found: ${matchResult.value} at position ${matchResult.range}") matchResult = matchResult.next() }

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

Found: 1 at position 1..1 Found: 22 at position 4..5 Found: 333 at position 8..10 Found: 4444 at position 13..16

Пример

Используем свойства value и range для получения информации о найденном совпадении:

val regex = Regex("code") val input = "Learn code programming" val matchResult = regex.find(input) if (matchResult != null) { println("Matched text: ${matchResult.value}") println("Start index: ${matchResult.range.first}") println("End index: ${matchResult.range.last}") println("Length: ${matchResult.value.length}") }

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

Matched text: code Start index: 6 End index: 9 Length: 4

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

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