使用regex从键中的映射访问值

使用regex从键中的映射访问值,regex,scala,Regex,Scala,通过在键值中指定正则表达式这样简单的操作,我是否可以获得所有键值对的列表,其中key包含“a”,而不必遍历整个映射 提前谢谢 不,如果不在整个地图上迭代,则无法执行此操作。事实上,我甚至想不出一个单一的数据结构可以支持它,更不用说API了 当然,迭代非常简单: val m = Map("a"->2,"ab"->3,"c"->4) scala> m.get("a"); scala> println(res.get) 2 scala> m.get(/a\.

通过在键值中指定正则表达式这样简单的操作,我是否可以获得所有键值对的列表,其中key包含“a”,而不必遍历整个映射


提前谢谢

不,如果不在整个地图上迭代,则无法执行此操作。事实上,我甚至想不出一个单一的数据结构可以支持它,更不用说API了

当然,迭代非常简单:

val m = Map("a"->2,"ab"->3,"c"->4)

scala> m.get("a");


scala> println(res.get)
2

scala> m.get(/a\.*/)
// or something similar.

我认为
m.filterKeys(uu包含“a”)
是更好的解决方案。@SergeyLagutin但那不是正则表达式,事实上,它会返回不是“以a开头”的结果,这就是一个例子。我不认为要求键“以a开头”。@SergeyLagutin
/a\*//code>——假设他错过了星号之前的一个周期,因为,否则,此正则表达式将匹配所有字符串。
m.filterKeys(_ matches "a.*")