Scala子字符串匹配以匹配名词

时间:2019-02-22 07:42:45

标签: regex scala

如果在scala中它们之间有空格,是否有任何正则表达式匹配子字符串?

例如:

 "hero 6 go pro" contains "gopro" should return true
 "go pro hero 6 " contains "gopro" should return true

我尝试过:

   def matchWords(input: Seq[Char], words: Seq[Char]): Boolean = (input, words) match {
         case (Seq(), Seq() | Seq(' ', _*)) => true
         case (Seq(), _) => false
         case (Seq(a, tail@_*), Seq(b, rest@_*)) if a == b => matchWords(tail, rest)
         case (_, Seq(' ', rest@_*)) => matchWords(input, rest)
         case _ => false
       }

但是

matchWords(“ gopro”,“ hero 6 go pro”)返回false

尽管此matchWords(“ fitbit”,“ fit bit versa”)返回true。

字符串应与名词匹配。

你知道我在做什么错吗?

谢谢, 沙利尼

1 个答案:

答案 0 :(得分:0)

与您具有相同“名称”的用户已经提出了一个非常相似的问题here,并获得了多个答案,其中包括one from me

您问题中的代码似乎是从其他答案中复制的。不幸的是,您选择了得分最低的答案,却无法给出正确的结果。

我建议您从这个问题中尝试我的答案...