gs_*_*lad 11 regex regex-group kotlin
Kotlin是否支持命名的正则表达式组?
命名的正则表达式组看起来像这样: (?<name>...)
Vad*_*zim 15
根据这个讨论,
这将在Kotlin 1.1中得到支持. https://youtrack.jetbrains.com/issue/KT-12753
Kotlin 1.1 EAP已经可以试用了.
"""(\w+?)(?<num>\d+)""".toRegex().matchEntire("area51")!!.groups["num"]!!.value
Run Code Online (Sandbox Code Playgroud)
你必须使用 kotlin-stdlib-jre8.
从 Kotlin 1.4 开始,您需要将结果转换为groupsto MatchNamedGroupCollection:
val groups = """(\w+?)(?<num>\d+)""".toRegex().matchEntire("area51")!!.groups as? MatchNamedGroupCollection
if (groups != null) {
println(groups.get("num")?.value)
}
Run Code Online (Sandbox Code Playgroud)
正如@Vadzim 正确注意到的那样,您必须使用kotlin-stdlib-jdk8而不是kotlin-stdlib:
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
}
Run Code Online (Sandbox Code Playgroud)
这是一个很好的解释
| 归档时间: |
|
| 查看次数: |
5466 次 |
| 最近记录: |