首页 > 解决方案 > 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 bitversa") 返回 true。

字符串应该匹配名词。

知道我在这里做错了什么吗?

谢谢, 沙利尼

标签: regexscala

解决方案


与您具有相同“名称”的用户已经在这里提出了一个非常相似的问题,并得到了多个答案,包括来自 me 的一个

您问题中的代码似乎是从另一个答案中复制而来的。不幸的是,您选择了得分最低的答案,但没有给出正确的结果。

我建议你试试我对那个问题的回答......


推荐阅读