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
Параметры
последовательность символов, в которой нужно найти совпадения с этим регулярным выражением
выражение, которым нужно заменить найденные совпадения
Исключения
если выражение 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
Параметры
последовательность символов, в которой нужно найти совпадения с этим регулярным выражением
выражение, которым нужно заменить найденные совпадения
Исключения
если выражение 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