Kotlin是否支持指定的正则表达式组?
命名的正则表达式组如下所示:Add(2)(2) //4
Add(2)(2)(3) // 7
Add(3)(2)(3)(0) // 8
function Add(number){
return function(number1){
return function(number2){
return number+number1+number2;
}
}
}
alert(Add(2)(2)(2));
答案 0 :(得分:15)
这将在Kotlin 1.1中得到支持。 https://youtrack.jetbrains.com/issue/KT-12753
Kotlin 1.1 EAP已经可以试用了。
"""(\w+?)(?<num>\d+)""".toRegex().matchEntire("area51")!!.groups["num"]!!.value
您必须use kotlin-stdlib-jre8
。
答案 1 :(得分:7)
从Kotlin 1.0开始,Regex
类没有提供访问MatchGroupCollection
中匹配的命名组的方法,因为标准库只能使用JDK6中可用的regex api,它没有支持对于命名组。
如果您定位JDK8,则可以使用java.util.regex.Pattern
和java.util.regex.Matcher
类。后者提供group
方法来获取命名捕获组匹配的结果。