过滤器由两个词线星火流
问题描述:
有没有办法用一个表达式过滤含有单词“字词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
)和:
测试谓词是否适用于此可迭代集合中的至少一个元素。