Spec-Zone.ru › Kotlin 2

replace

kotlin-stdlib/kotlin.text/Regex/replace

Требования к платформе и версии: Common (1.0), JS (1.1), Native (1.3), Wasm-JS (1.8), Wasm-WASI (1.8)

expect fun replace(input: CharSequence, replacement: String): String

Заменяет все вхождения этого регулярного выражения в указанной строке input выражением замены replacement.

Строка замены может содержать ссылки на захваченные группы, полученные при сопоставлении. Вхождения ${name} или $index в строке замены будут заменены подстроками, соответствующими захваченным группам с указанным именем или индексом. В случае $index первая цифра после '$' всегда считается частью ссылки на группу. Последующие цифры включаются в index, только если они образуют допустимую ссылку на группу. В качестве возможных компонентов ссылки на группу рассматриваются только цифры от '0' до '9'. Обратите внимание, что индексы захваченных групп начинаются с 1, а группа с индексом 0 представляет собой всё совпадение. В случае ${name} name может состоять из латинских букв от 'a' до 'z' и от 'A' до 'Z' или цифр от '0' до '9'. Первым символом должна быть буква.

Символ обратной косой черты '\' можно использовать, чтобы включить следующий за ним символ в строку замены как литерал, например, \$ или \\. Если replacement нужно трактовать как строку-литерал, можно использовать Regex.escapeReplacement.

Возвращает

результат замены каждого вхождения этого регулярного выражения в input результатом вычисления выражения replacement

Параметры

input

последовательность символов, в которой нужно найти совпадения с этим регулярным выражением

replacement

выражение, которым нужно заменить найденные совпадения

Исключения

RuntimeException

если выражение replacement имеет неверный формат или не существует захваченная группа с указанным name или index

Примеры

import kotlin.test.*

fun main() { 
   //sampleStart 
   val text = "The events are on 15-09-2024 and 16-10-2024."
// Regex to match dates in dd-mm-yyyy format
val dateRegex = "(?<day>\\d{2})-(?<month>\\d{2})-(?<year>\\d{4})".toRegex()
// Replacement expression that puts day, month and year values in the ISO 8601 recommended yyyy-mm-dd format
val replacement = "\${year}-\${month}-\${day}"

// Replacing all occurrences of dates from dd-mm-yyyy to yyyy-mm-dd format
println(dateRegex.replace(text, replacement)) // The events are on 2024-09-15 and 2024-10-16.

// One can also reference the matched groups by index
println(dateRegex.replace(text, "$3-$2-$1")) // The events are on 2024-09-15 and 2024-10-16.

// Using a backslash to include the special character '$' as a literal in the result
println(dateRegex.replace(text, "$3-\\$2-$1")) // The events are on 2024-\$2-15 and 2024-\$2-16. 
   //sampleEnd
}

expect fun replace(input: CharSequence, transform: (MatchResult) -> CharSequence): String

Заменяет все вхождения этого регулярного выражения в указанной строке input результатом вызова заданной функции transform, которая принимает MatchResult и возвращает строку, используемую для замены этого совпадения.

Требования к платформе и версии: JVM (1.0)

actual fun replace(input: CharSequence, replacement: String): String

Заменяет все вхождения этого регулярного выражения в указанной строке input выражением замены replacement.

Строка замены может содержать ссылки на захваченные группы, полученные при сопоставлении. Вхождения ${name} или $index в строке замены будут заменены подстроками, соответствующими захваченным группам с указанным именем или индексом. В случае $index первая цифра после '$' всегда считается частью ссылки на группу. Последующие цифры включаются в index, только если они образуют допустимую ссылку на группу. В качестве возможных компонентов ссылки на группу рассматриваются только цифры от '0' до '9'. Обратите внимание, что индексы захваченных групп начинаются с 1, а группа с индексом 0 представляет собой всё совпадение. В случае ${name} name может состоять из латинских букв от 'a' до 'z' и от 'A' до 'Z' или цифр от '0' до '9'. Первым символом должна быть буква.

Символ обратной косой черты '\' можно использовать, чтобы включить следующий за ним символ в строку замены как литерал, например, \$ или \\. Если replacement нужно трактовать как строку-литерал, можно использовать Regex.escapeReplacement.

Обратите внимание, что именованные захваченные группы поддерживаются в Java 7 и более поздних версиях.

Возвращает

результат замены каждого вхождения этого регулярного выражения в input результатом вычисления выражения replacement

Параметры

input

последовательность символов, в которой нужно найти совпадения с этим регулярным выражением

replacement

выражение, которым нужно заменить найденные совпадения

Исключения

RuntimeException

если выражение replacement имеет неверный формат или не существует захваченная группа с указанным name или index

Примеры

import kotlin.test.*

fun main() { 
   //sampleStart 
   val text = "The events are on 15-09-2024 and 16-10-2024."
// Regex to match dates in dd-mm-yyyy format
val dateRegex = "(?<day>\\d{2})-(?<month>\\d{2})-(?<year>\\d{4})".toRegex()
// Replacement expression that puts day, month and year values in the ISO 8601 recommended yyyy-mm-dd format
val replacement = "\${year}-\${month}-\${day}"

// Replacing all occurrences of dates from dd-mm-yyyy to yyyy-mm-dd format
println(dateRegex.replace(text, replacement)) // The events are on 2024-09-15 and 2024-10-16.

// One can also reference the matched groups by index
println(dateRegex.replace(text, "$3-$2-$1")) // The events are on 2024-09-15 and 2024-10-16.

// Using a backslash to include the special character '$' as a literal in the result
println(dateRegex.replace(text, "$3-\\$2-$1")) // The events are on 2024-\$2-15 and 2024-\$2-16. 
   //sampleEnd
}

actual fun replace(input: CharSequence, transform: (MatchResult) -> CharSequence): String

Заменяет все вхождения этого регулярного выражения в указанной строке input результатом вызова заданной функции transform, которая принимает MatchResult и возвращает строку, используемую для замены этого совпадения.

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.text/-regex/replace.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API