在 Kotlin 中使用 Regex 在字符串中查找一个或多个单词

奥拉马特

我正在使用正则表达式在 Kotlin 中创建一种方法,该方法检查字符串是否包含一个或多个特定代词(例如“我”、“我们”、“你”等)。例如,“我们是一家科技公司”应该是匹配项,“Web 是给蜘蛛的”不应该是匹配项。

我尝试使用此代码:

fun main() {
    val text = "We are testing!"
    val regex = "/\b(i|you|we)\b/g".toRegex()
    if (regex.containsMatchIn(text.lowercase())) {
        println("match")
    } else {
        println("no match")
    }
}

,但它打印“不匹配”。

维克多·斯特里比尤夫

Kotlin(和 Java)正则表达式是用字符串字面量定义的,而不是正则表达式字面量,即当您/在模式的开头和/g(或只是/)末尾添加时,实际上是将它们添加到模式 string 中

您可以使用以下修复程序:

val text = "We are testing!"
val regex = """(?i)\b(i|you|we)\b""".toRegex()
if (regex.containsMatchIn(text)) {
    println("match")
} else {
    println("no match")
}

"""(?i)\b(i|you|we)\b"""等于"(?i)\\b(i|you|we)\\b",前者治疗反斜杠作为文字字符。

请注意,您不需要使用.lowercase()(?i)不区分大小写的修饰符将使匹配不区分大小写。

请参阅在线 Kotlin 演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

REGEX查找字符串中的前一个或两个大写单词

获取字符串中每个单词的第一个字母并使用 Regex 连接成新单词

在JavaScript中使用字符串的RegEx的第一个字母

如何仅使用一个Regex将多个字符串替换为另一个字符串,还是必须使用多个Regex和临时字符串?

如何在Python中使用Regex从同一个字符串中提取多个值?

在Python中使用regex匹配字符串中重复出现的单词

使用regExp将字符串中的多个单词动态匹配到另一个单词

使用Java中的regex提取两个特定单词之间的子字符串

使用Regex在字符串中的特殊字符串中查找特殊字符串

使用python regex从字符串中捕获单词

使用Regex Python删除数据框中字符串的前2个单词和后2个单词

在C#中使用Regex在最后一个逗号或最后一个数字之后获取字符串

如何使用 Python/regex 将字符串的一部分移动到字符串中的另一个位置

使用Kotlin查找以数组中的字符串之一结尾的所有句子

在一个文件中查找字符串,然后在另一个文件中使用它

Regex:在Java 8中使用Regex

在PyMongo中的$ regex中使用$ not $

从 URL 中删除内容并使用 Javascript 和 Regex 构建一个字符串

使用Kotlin从另一个列表中提取的字符串创建列表

使用RegEx精确查找随机字符串中的字母

尝试使用 RegEx 在文件中查找特定字符串

使用RegEx提取MySQL中每个单词的第一个字符

在 Kotlin 中使用带有字符串数组的 BindingAdapter

使用 kotlin 在函数内返回一个函数(返回一个字符串)

如何使用Regex搜索不以另一个字符串开头的字符串

在pyspark中使用regex将数字添加到字符串中最后一个字符之前

在 QT 中使字符串中的一个单词成为一种颜色

使用r regex删除第一个数字之后的字符串

如何使用此REGEX匹配最后一个字符串