android - 如何在 kotlin 正则表达式语句中使用正则表达式开始标记 (^)

标签 android regex kotlin

如何在 Kotlin 中检查字符串是否包含给定正则表达式并以给定正则表达式开头?

我期待我可以这样做:

fun main(args: Array<String>) {
    var text = "test string"
    val regex = Regex.fromLiteral("^test")
    val matches: Boolean = text.contains(regex)
    assert(matches)
}

但这不起作用。它按预期工作,无需 ^。甚至做matchesfind ,或正则表达式运算符,如 containsMatchIn似乎不起作用。

我是否遗漏了一些明显的东西?也许我不能使用开始边界,或者我不应该使用它。

注意:我知道 startsWith但这不允许我使用正则表达式。我想使用正则表达式,因为我的代码具有比“测试字符串”更复杂的字符串。

最佳答案

Regex.fromLiteral("^test") 生成与 ^test 匹配的 \^test 正则表达式code> 子字符串迭代。检查Regex.fromLiteral()文档:

Returns a literal regex for the specified literal string.

您只需根据字符串文字创建一个正则表达式,使用

val regex = """^test""".toRegex()

请参阅Kotlin demo .

关于android - 如何在 kotlin 正则表达式语句中使用正则表达式开始标记 (^),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52540788/

相关文章:

android - 两行按钮的对齐问题

java - 解析日期和时区

android - 更新 Android 中方向变化的进度条

android-studio - 在Kotlin中生成方法或类注释

android - 无法使用数据绑定(bind) Android 从 ViewModel 与 XML 通信

java - RecyclerView 的动态部分标题使用当前日期时间

C# Regex 性能非常慢

python - 在 NLTK 解析器中使用整数/日期作为终端

regex - 使用正则表达式匹配多个逗号分隔的单词

Kotlin - 如何异步读取文件?