web-dev-qa-db-ja.com

KotlinRegexの名前付きグループのサポート

Kotlinは名前付き正規表現グループをサポートしていますか?

名前付き正規表現グループは次のようになります:(?<name>...)

15
gs_vlad

この議論 によると、

これはKotlin1.1でサポートされます。 https://youtrack.jetbrains.com/issue/KT-1275

Kotlin 1.1 EAP はすでに試用可能です。


"""(\w+?)(?<num>\d+)""".toRegex().matchEntire("area51")!!.groups["num"]!!.value

あなたはしなければならないでしょう 使用kotlin-stdlib-jre8

15
Vadzim

Kotlin 1.0以降、標準ライブラリはJDK6で利用可能な正規表現APIのみを使用できるため、RegexクラスはMatchGroupCollection内の一致する名前付きグループにアクセスする方法を提供しません。名前付きグループのいずれか。

JDK8をターゲットにする場合は、Java.util.regex.PatternクラスとJava.util.regex.Matcherクラスを使用できます。後者は、名前付きキャプチャグループの一致の結果を取得するための group メソッドを提供します。

7
Ilya