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

Функция find

Функция find выполняет поиск первого вхождения, соответствующего регулярному выражению, в строке. Принимает объект Regex в качестве параметра. Возвращает объект MatchResult или null, если совпадений не найдено.

Синтаксис

fun CharSequence.find( regex: Regex, startIndex: Int = 0 ): MatchResult?

Пример

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

val text = "price: 1500, discount: 200" val result = text.find(Regex("\\d+")) println(result?.value)

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

1500

Пример

Найдем первое email-сообщение в тексте:

val text = "contacts: info@company.com, support@company.com" val emailRegex = Regex("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}") val result = text.find(emailRegex) println(result?.value)

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

info@company.com

Пример

Найдем первое слово, начинающееся с заглавной буквы:

val text = "regular expressions in Kotlin are very powerful" val result = text.find(Regex("[А-ЯA-Z][а-яa-z]*")) println(result?.value)

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

String "Kotlin"

Пример

Попробуем найти несуществующее соответствие:

val text = "This is plain text without numbers" val result = text.find(Regex("\\d+")) println(result)

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

null

Работа с MatchResult

Объект MatchResult содержит полезную информацию о найденном совпадении:

val text = "Date: 2024-03-15, time: 14:30" val dateRegex = Regex("\\d{4}-\\d{2}-\\d{2}") val result = text.find(dateRegex) result?.let { println("Found: ${it.value}") println("Start index: ${it.range.first}") println("End index: ${it.range.last}") println("Groups: ${it.groupValues}") }

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

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