本文方法及代码示例基于Kotlin 2.1.20 Released
MatchResult.Destructured
所在包 kotlin.text.MatchResult.Destructured
,其相关用法介绍如下。
用法:
kotlin
class Destructured
提供用于解构组值分配的组件。
component1 对应于第一组的值,component2 --- 第二组的值,依此类推。
如果正则表达式中的组是可选的,并且该组没有捕获到匹配项,则相应的组件值为空字符串。
示例代码:
kotlin
fun main(args: Array<String>) {
//sampleStart
val inputString = "John 9731879"
val match = Regex("(\w+) (\d+)").find(inputString)!!
val (name, phone) = match.destructured
println(name) // John // value of the first group matched by \w+
println(phone) // 9731879 // value of the second group matched by \d+
// group with the zero index is the whole substring matched by the regular expression
println(match.groupValues) // [John 9731879, John, 9731879]
val numberedGroupValues = match.destructured.toList()
// destructured group values only contain values of the groups, excluding the zeroth group.
println(numberedGroupValues) // [John, 9731879]
//sampleEnd
}
// 输出
John
9731879
[John 9731879, John, 9731879]
[John, 9731879]