#regex #associative #key #container #map #structure

regex-map

键为正则表达式的关联容器

1 个不稳定版本

0.1.0 2023年10月4日

#2321 in 数据结构

MIT/Apache

7KB
61

基于 regex::RegexSet 数据结构的键为正则表达式的关联容器。

示例用法

use regex_map::RegexMap;

let map = RegexMap::new([
   ("foo", 1),
   ("bar", 2),
   ("foobar", 3),
   ("^foo$", 4),
   ("^bar$", 5),
   ("^foobar$", 6),
]);

assert_eq!(map.get("foo").cloned().collect::<Vec<_>>(), vec![1, 4]);
assert_eq!(map.get("bar").cloned().collect::<Vec<_>>(), vec![2, 5], );
assert_eq!(map.get("foobar").cloned().collect::<Vec<_>>(), vec![1, 2, 3, 6]);
assert_eq!(map.get("XXX foo XXX").cloned().collect::<Vec<_>>(), vec![1]);
assert_eq!(map.get("XXX bar XXX").cloned().collect::<Vec<_>>(), vec![2]);

for value in map.get("foo") {
    println!("Foo match: {}", value);
}

待办事项

  • 考虑添加 get_with_match,它将返回值和各个正则表达式的匹配的迭代器。

依赖关系

~2–3MB
~53K SLoC