Kotlin正则表达式边界匹配不起作用

nz_*_*_21 2 regex regular-language kotlin

我正在尝试解析一个单词,该单词两侧都有空格或标点符号。

我试过这个:


fun main(args: Array<String>) {
    val regex = "\bval\b".toRegex();
    regex.matches("fn foo() { val x = 2;} x;").also { println(it) }
}
Run Code Online (Sandbox Code Playgroud)

但这打印出来是错误的。我在这里测试了正则表达式https://regex101.com/r/vNBefF/2并且它有效,与输入字符串匹配。

我究竟做错了什么?

小智 7

我认为你使用了错误的方法。来自KotlinDoc

指示正则表达式是否与整个输入匹配。

我想你可能想要的是containsMatchIn你可以在操场上玩这个。