使用正则表达式从键中的映射访问值

joa*_*Arc 5 regex scala

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.
Run Code Online (Sandbox Code Playgroud)

我可以通过执行像在键值中指定正则表达式这样简单的操作来获取所有键值对的列表,其中键包含"a"而不必遍历整个映射吗?

提前致谢!

Dan*_*ral 9

不,如果不迭代整个地图,就不能这样做.事实上,我甚至无法想到允许它的单一数据结构,更不用说API了.

当然,迭代非常简单:

m.filterKeys(_ matches "a.*")
Run Code Online (Sandbox Code Playgroud)

  • 我认为`m.filterKeys(_包含"a")`是更好的解决方案. (2认同)