过滤器由两个词线星火流

问题描述:

有没有办法用一个表达式过滤含有单词“字词1”或其他的“单词2” 类似的线路:过滤器由两个词线星火流

val res = lines.filter(line => line.contains("word1" or "word2")) 

,因为这种表达没有按”工作。

预先感谢您

如果行是一个String最佳的选择将正则表达式:

val pattern = "word1|word2".r 

lines.filter(line => pattern.findFirstIn(line).isDefined) 

否则(其它序列类型),可以使用Seq.exists

lines.filter(line => Seq("foo", "bar").exists(s => line.contains(s))) 

,这需要从元素映射到布尔值(这里是(String) ⇒ Boolean)和:

测试谓词是否适用于此可迭代集合中的至少一个元素。