gpt4 book ai didi

regex - 在 Kotlin 中使用正则表达式在字符串中查找一个或多个单词

转载 作者:行者123 更新时间:2023-12-05 02:41:31 24 4
gpt4 key购买 nike

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

我试过这段代码:

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 (或只是 /) 在模式末尾,您实际上将它们添加到模式字符串

您可以使用以下修复:

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) 不区分大小写修饰符将使匹配不区分大小写。

参见 online Kotlin demo .

关于regex - 在 Kotlin 中使用正则表达式在字符串中查找一个或多个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68081933/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com