Kotlin正则表示命名组支持
Kotlin是否支持命名的正则表达式组?
命名的正则表达式组如下所示: (?<name>...)
从Kotlin 1.0开始, Regex
类不提供访问MatchGroupCollection
匹配的已命名组的方法,因为标准库只能使用JDK6中可用的正则表达式api,它不支持命名组。
如果你的目标是JDK8,你可以使用java.util.regex.Pattern
和java.util.regex.Matcher
类。 后者提供了group
方法来获得命名捕获组匹配的结果。
根据这个讨论 ,
这将在Kotlin 1.1中得到支持。 https://youtrack.jetbrains.com/issue/KT-12753
Kotlin 1.1 EAP已经可以试用了。
"""(\w+?)(?<num>\d+)""".toRegex().matchEntire("area51")!!.groups["num"]!!.value
你将不得不使用 kotlin-stdlib-jre8
。