Kotlin正则表示命名组支持

Kotlin是否支持命名的正则表达式组?

命名的正则表达式组如下所示: (?<name>...)

从Kotlin 1.0开始, Regex类不提供访问MatchGroupCollection匹配的已命名组的方法,因为标准库只能使用JDK6中可用的正则表达式api,它不支持命名组。

如果你的目标是JDK8,你可以使用java.util.regex.Patternjava.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