Функция replaceFirst
Функция replaceFirst с параметром типа Regex заменяет только первое совпадение регулярного выражения в строке. Это полезно когда нужно модифицировать только первое вхождение шаблона, оставляя остальные без изменений.
Синтаксис
fun String.replaceFirst(regex: Regex, replacement: String): String
fun String.replaceFirst(
regex: Regex,
transform: (MatchResult) -> CharSequence
): String
Пример
Замена только первого совпадения цифр в строке:
val text = "abc123def456"
val result = text.replaceFirst(Regex("\\d+"), "NUM")
println(result) // "abcNUMdef456"
Пример
Замена первого вхождения даты с изменением формата:
val text = "Date: 2023-12-25, Another: 2024-01-01"
val result = text.replaceFirst(Regex("(\\d{4})-(\\d{2})-(\\d{2})"), "$3.$2.$1")
println(result) // "Date: 25.12.2023, Another: 2024-01-01"
Пример
Использование лямбды для сложной замены первого совпадения:
val text = "5 apples, 3 oranges, 2 bananas"
val result = text.replaceFirst(Regex("\\d+")) { match ->
(match.value.toInt() * 10).toString() + "kg"
}
println(result) // "50kg apples, 3 oranges, 2 bananas"
Пример
Замена только первого вхождения слова без учета регистра:
val text = "HELLO world hello everyone"
val result = text.replaceFirst(
Regex("hello", RegexOption.IGNORE_CASE),
"Hi"
)
println(result) // "Hi world hello everyone"
Смотрите также
-
класс
Regex,
для работы с регулярными выражениями -
функцию
replace,
которая заменяет все совпадения регулярного выражения -
функцию
find,
которая находит первое совпадение регулярного выражения -
функцию
replaceRange,
которая заменяет указанный диапазон в строке