如何在Kotlin中检查字符串是否包含给定的正则表达式并以其开头?
我期望我能做到:
fun main(args: Array<String>) {
var text = "test string"
val regex = Regex.fromLiteral("^test")
val matches: Boolean = text.contains(regex)
assert(matches)
}
但这不起作用。它不带^就可以正常工作。即使执行matches
或find
,或containsMatchIn之类的Regex运算符似乎也不起作用。
我缺少明显的东西吗?也许我不能使用开始的边界,或者我不应该使用它。
注意:我知道startsWith,但这不允许我使用正则表达式。我想使用正则表达式,因为我的代码具有比“测试字符串”更复杂的字符串。
答案 0 :(得分:1)
Regex.fromLiteral("^test")
会生成一个\^test
正则表达式,它与^test
子字符串 itemally 相匹配。检查Regex.fromLiteral()
的文档记录:
为指定的literal字符串返回文字正则表达式。
您只需要使用字符串文字制作一个正则表达式,使用
val regex = """^test""".toRegex()
请参见Kotlin demo。