DANFA

Kotlin: Функция replace(): Аналог PHP: preg_replace_callback()

В Kotlin есть похожий функционал через метод replace с лямбда-выражением.

Вы можете использовать такую форму метода replace:
val text = "Исходный текст"
val regex = """шаблон""".toRegex()

// Пример использования
val result = text.replace(regex) { match ->
    // Здесь можно обработать совпадение
    // match.value содержит найденное значение
    // Возвращаем новую строку для замены
    "новая строка"
}

Это работает аналогично preg_replace_callback в PHP. Вы можете:
  • Получать доступ к найденным совпадениям.
  • Обрабатывать их в лямбда-выражении.
  • Возвращать новую строку для замены.

Пример с регулярным выражением:
val text = "123-456-789"
val regex = """(\d{3})""".toRegex()

val result = text.replace(regex) { match ->
    "[$match.value]" // Обернем каждую группу цифр в квадратные скобки
}

// Результат будет: [123]-[456]-[789]

В лямбда-выражении доступны:
  • match.value - полное совпадение.
  • match.groups - группы захвата.
  • match.range - диапазон совпадения в строке.

Это позволяет гибко обрабатывать замены с использованием регулярных выражений.

Автор:  09.02.2026 05:47:14 pm