Функция replaceAll
Функция replaceAll объекта Regex выполняет замену
всех фрагментов входной строки, соответствующих шаблону регулярного выражения.
Это метод самого объекта Regex, а не строки.
Синтаксис
fun Regex.replaceAll(
input: CharSequence,
replacement: String
): String
fun Regex.replaceAll(
input: CharSequence,
transform: (MatchResult) -> CharSequence
): String
Пример
Замена всех цифр в строке на символ подчеркивания с использованием replaceAll Regex:
val text = "Order 123, Price 45.67, Count 8"
val regex = Regex("\d+")
val result = regex.replaceAll(text, "_")
println(result)
Результат выполнения кода:
String "Order _, Price _._, Count _"
Пример
Использование функции преобразования для динамической замены найденных чисел:
val text = "5 apples, 3 oranges, 10 bananas"
val regex = Regex("\d+")
val result = regex.replaceAll(text) { match ->
(match.value.toInt() * 2).toString()
}
println(result)
Результат выполнения кода:
String "10 apples, 6 oranges, 20 bananas"
Пример
Удаление всех пробельных символов с помощью replaceAll Regex:
val text = "K o t l i n P r o g r a m m i n g"
val regex = Regex("\s+")
val result = regex.replaceAll(text, "")
println(result)
Результат выполнения кода:
String "KotlinProgramming"
Пример
Замена всех email-адресов в тексте на маскированную версию:
val text = "Contact: john@example.com or mary@test.org"
val regex = Regex("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}")
val result = regex.replaceAll(text) { match ->
val email = match.value
val parts = email.split("@")
parts[0].take(2) + "***@" + parts[1]
}
println(result)
Результат выполнения кода:
String "Contact: jo***@example.com or ma***@test.org"
Пример
Замена всех дат в формате YYYY-MM-DD на DD.MM.YYYY с использованием групп:
val text = "Dates: 2023-12-25, 2024-01-01, 2024-05-15"
val regex = Regex("(\d{4})-(\d{2})-(\d{2})")
val result = regex.replaceAll(text, "..")
println(result)
Результат выполнения кода:
String "Dates: 25.12.2023, 01.01.2024, 15.05.2024"
Смотрите также
-
функцию
replace,
которая работает аналогично, но применяется с строке -
функцию
replaceFirst,
которая заменяет только первое совпадение регулярного выражения -
функцию
matches,
которая проверяет полное соответствие строки регулярному выражению -
функцию
split,
которая разделяет строку по регулярному выражению