From 565727e302d124f1b6b411dff4b3e15656b842ea Mon Sep 17 00:00:00 2001 From: Kevin Peek Date: Mon, 18 Feb 2019 13:05:46 -0500 Subject: [PATCH] KT-20357 - Add sample for Regex.findAll() --- libraries/stdlib/common/src/kotlin/TextH.kt | 2 ++ libraries/stdlib/js/src/kotlin/regex.kt | 5 ++++- libraries/stdlib/jvm/src/kotlin/text/regex/Regex.kt | 2 ++ libraries/stdlib/samples/test/samples/text/regex.kt | 9 +++++++++ 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/libraries/stdlib/common/src/kotlin/TextH.kt b/libraries/stdlib/common/src/kotlin/TextH.kt index 2d0a6305d64..57a37c7205f 100644 --- a/libraries/stdlib/common/src/kotlin/TextH.kt +++ b/libraries/stdlib/common/src/kotlin/TextH.kt @@ -53,6 +53,8 @@ expect class Regex { /** * Returns a sequence of all occurrences of a regular expression within the [input] string, beginning at the specified [startIndex]. + * + * @sample samples.text.Regexps.findAll */ fun findAll(input: CharSequence, startIndex: Int = 0): Sequence diff --git a/libraries/stdlib/js/src/kotlin/regex.kt b/libraries/stdlib/js/src/kotlin/regex.kt index 66156deec41..8ad12e0dacf 100644 --- a/libraries/stdlib/js/src/kotlin/regex.kt +++ b/libraries/stdlib/js/src/kotlin/regex.kt @@ -74,7 +74,10 @@ public actual class Regex actual constructor(pattern: String, options: Set = diff --git a/libraries/stdlib/jvm/src/kotlin/text/regex/Regex.kt b/libraries/stdlib/jvm/src/kotlin/text/regex/Regex.kt index 0ed232674ac..7ae899d8d99 100644 --- a/libraries/stdlib/jvm/src/kotlin/text/regex/Regex.kt +++ b/libraries/stdlib/jvm/src/kotlin/text/regex/Regex.kt @@ -121,6 +121,8 @@ internal constructor(private val nativePattern: Pattern) : Serializable { /** * Returns a sequence of all occurrences of a regular expression within the [input] string, beginning at the specified [startIndex]. + * + * @sample samples.text.Regexps.findAll */ @Suppress("ACTUAL_FUNCTION_WITH_DEFAULT_ARGUMENTS") public actual fun findAll(input: CharSequence, startIndex: Int = 0): Sequence = diff --git a/libraries/stdlib/samples/test/samples/text/regex.kt b/libraries/stdlib/samples/test/samples/text/regex.kt index c510ff21195..47cc7ac5c0f 100644 --- a/libraries/stdlib/samples/test/samples/text/regex.kt +++ b/libraries/stdlib/samples/test/samples/text/regex.kt @@ -45,4 +45,13 @@ class Regexps { // Because the search starts from the index 2, it finds the last "to be". assertPrints(regex3.find(inputString, 2)!!.range, "13..17") } + + @Sample + fun findAll() { + val text = "Hello Alice. Hello Bob. Hello Eve." + val regex = Regex("Hello (.*?)[.]") + val matches = regex.findAll(text) + val names = matches.map { it.groupValues[1] }.joinToString() + assertPrints(names, "Alice, Bob, Eve") + } } \ No newline at end of file