gpt4 book ai didi

regex - 如何将一个字符串与另一个之间有空格的字符串进行比较

转载 作者:行者123 更新时间:2023-12-03 17:31:03 25 4
gpt4 key购买 nike

我如何比较这两个字符串:

val a = "fit bit versa"
val b = "fitbit"

另一个例子
val a = "go pro hero 6"
val b = "gopro"

另一个例子
val a = "hero go pro  6"
val b = "gopro"

另一个例子
val a = "hero 6 go pro"
val b = "gopro"

我想为上述比较获得“真实”但不是在这里:
val a = "vegan protein powder"
val b = "vega"

这应该是假的。

目前我正在做:
def matchPattern(a:String, b: String):String=
{
val dd = a.split(" ")
val result = dd.map(_.toLowerCase())
if(result contains b.toLowerCase) true
else false
}

这适用于最后一种情况,但不适用于其余情况。

有什么建议吗?

最佳答案

这是使用 sliding(i) 的一种方法,其中 i范围从 2 到 a 中的字数, 组装所有可能连接的相邻单词的列表。然后检查是否b完全匹配列表中的任何元素,如下所示:

def matchPattern(a: String, b: String): Boolean = {
val words = a.toLowerCase.split("\\s+")

val concats = (2 to words.size).foldLeft(words)(
(acc, i) => acc ++ words.sliding(i).map(_.mkString)
)

concats contains b.toLowerCase
}

matchPattern("Hero go Pro 6", "gopro")
// res1: Boolean = true

matchPattern("Hero go Pro 6", "gopro6")
// res2: Boolean = true

matchPattern("Vegan protein powder", "vega")
// res3: Boolean = false

关于regex - 如何将一个字符串与另一个之间有空格的字符串进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54082967/

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