【问题标题】:Using regex to access values from a map in keys使用正则表达式从键中的映射访问值
【发布时间】:2014-10-30 17:08:37
【问题描述】:
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.

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

提前致谢!

【问题讨论】:

    标签: regex scala


    【解决方案1】:

    不,如果不遍历整个地图,您就无法做到这一点。事实上,我什至想不出一个单一的数据结构来支持它,更不用说 API。

    当然,迭代非常简单:

    m.filterKeys(_ matches "a.*")
    

    【讨论】:

    • 我认为m.filterKeys(_ contains "a" ) 是更好的解决方案。
    • @SergeyLagutin 但这不是正则表达式,实际上,它会返回不是“以 a 开头”的结果,这就是示例。
    • 我没有看到密钥应该“以 a 开头”的要求。
    • @SergeyLagutin /a\*/ -- 假设他错过了星号之前的一个句点,否则,这个正则表达式将匹配所有字符串。
    猜你喜欢
    • 2017-10-12
    • 2023-02-01
    • 2021-01-27
    • 2019-04-03
    • 1970-01-01
    • 2017-04-06
    • 2015-07-18
    • 1970-01-01
    • 2016-09-30
    相关资源
    最近更新 更多