Spec-Zone.ru › Kotlin 2

replaceFirst

kotlin-stdlib/kotlin.text/Regex/replaceFirst

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

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

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

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

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

Возвращает

результат замены первого вхождения этого регулярного выражения в 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 the first occurrence of a date from dd-mm-yyyy to yyyy-mm-dd format
println(dateRegex.replaceFirst(text, replacement)) // The events are on 2024-09-15 and 16-10-2024.

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

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

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

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

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

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

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

Обратите внимание, что именованные захватывающие группы поддерживаются в 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 the first occurrence of a date from dd-mm-yyyy to yyyy-mm-dd format
println(dateRegex.replaceFirst(text, replacement)) // The events are on 2024-09-15 and 16-10-2024.

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

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

© 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-first.html

Spec-Zone.ru

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