Функция findAll
Функция findAll используется для поиска всех вхождений регулярного выражения в строке. Принимает строку для поиска в качестве параметра и возвращает последовательность MatchResult. Каждый MatchResult содержит информацию о найденном совпадении, включая значение и позицию в строке.
Импорт
import kotlin.text.Regex
Синтаксис
fun Regex.findAll(input: CharSequence): Sequence<MatchResult>
Пример
Найдем все цифры в строке "a1b2c3d4e5":
val regex = Regex("\\d")
val input = "a1b2c3d4e5"
val matches = regex.findAll(input)
for (match in matches) {
println("Found ${match.value} at ${match.range}")
}
Результат выполнения кода:
Found 1 at 1..1
Found 2 at 3..3
Found 3 at 5..5
Found 4 at 7..7
Found 5 at 9..9
Пример
Найдем все слова из 3 букв в строке "cat dog fox bird":
val regex = Regex("\\b\\w{3}\\b")
val input = "cat dog fox bird"
val matches = regex.findAll(input).toList()
println(matches.map { it.value })
Результат выполнения кода:
Array<String> ['cat', 'dog', 'fox']
Пример
Найдем все email-адреса в тексте:
val regex = Regex("\\b\\w+@\\w+\\.\\w+\\b")
val input = "Contact us: info@example.com or support@test.org"
val matches = regex.findAll(input)
matches.forEach { println(it.value) }
Результат выполнения кода:
String "info@example.com"
String "support@test.org"
Смотрите также
-
функцию
find,
которая находит первое совпадение в строке -
функцию
matches,
которая проверяет полное соответствие строки шаблону -
функцию
containsMatchIn,
которая проверяет наличие хотя бы одного совпадения -
функцию
replace,
которая заменяет совпадения в строке